実現したいこと
webスクレイピングを行っています.そこで期間を設定する際,dd-mm-yyyyという形でページに入力したいのですがやり方を教えていただきたいです.
発生している問題・分からないこと
今,loopをprintすると2024-04-01 00:00:00とプリントされます.dd-mm-yyyyという形になっていないため,loopがstart_spanにはいりません.
該当のソースコード
import datetime from dateutil.relativedelta import relativedelta import time from selenium import webdriver startday = "01-01-2024" #開始日 lastday="01-04-2024" #終了日 #開始日終了日を日付型にする startday = datetime.datetime.strptime(startday,"%d-%m-%Y") lastday = datetime.datetime.strptime(lastday,"%d-%m-%Y") #開始日と終了日の月の差分を取得する sabun = (lastday.year-startday.year)*12+lastday.month-startday.month for i in range(0,sabun+1): start = startday #開始日を設定する loop=start+relativedelta(months=i) #開始日に1か月づつ加算する loop2=loop+relativedelta(month=i) start_span = driver.find_element(By.XPATH,("//input[@name='from']")) start_span.send_keys(loop) sleep(3) finish_span = driver.find_element(By.XPATH,("//input[@name='to']")) finish_span.send_keys(loop2) sleep(3) button = driver.find_element(By.XPATH,"/html/body/div[2]/div[2]/div[3]/div/div/div[1]/div[2]/div/div[2]/form/div[7]/div/div/button") button.submit() sleep(3) #アンケート questionnaire_1 = driver.find_element(By.XPATH,('//*[@id="form-feedback"]/div[1]/div/div[1]/ul/a[4]')).click() questionnaire_2 = driver.find_element(By.XPATH,('//*[@id="form-feedback"]/div[2]/div/div[1]/ul/a[1]')).click() questionnaire_3 = driver.find_element(By.XPATH,('//*[@id="form-feedback"]/div[3]/div/div[1]/ul/a[2]')).click() questionnaire_4 = driver.find_element(By.XPATH,('//*[@id="form-feedback"]/div[4]/div/div[1]/ul/a[4]')).click() sleep(3) #アンケート提出 SEND = driver.find_element(By.XPATH,('//*[@id="form-feedback"]/div[6]/div/button')).click() #データダウンロード XLS = driver.find_element(By.XPATH,('/html/body/div[2]/div[2]/div[3]/div/div/div[2]/div/div/div[2]/div[4]/div/form/button[1]')).click()
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
ToStringを試してみようとしましたが,datetimeとの兼ね合いがわからなくなってしまいました.
補足
特になし
回答2件
あなたの回答
tips
プレビュー