質問編集履歴
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -51,4 +51,101 @@
|
|
51
51
|
- requests==2.22.0
|
52
52
|
|
53
53
|
###備考
|
54
|
-
すみませんが、どなたかヒントをいただけると助かります。
|
54
|
+
すみませんが、どなたかヒントをいただけると助かります。
|
55
|
+
|
56
|
+
###追記
|
57
|
+
指摘していただいた内容を反映し、下記のようなコードにしてみました。
|
58
|
+
ダウンロードcsvの保存先をデスクトップにしたいのですが、
|
59
|
+
ダウンロードフォルダに保存されてしまいます。
|
60
|
+
|
61
|
+
どこを修正する必要があるか教えていただけないでしょうか?
|
62
|
+
|
63
|
+
```Python
|
64
|
+
import requests
|
65
|
+
from selenium import webdriver
|
66
|
+
import time
|
67
|
+
from selenium.webdriver.support.ui import Select
|
68
|
+
import datetime
|
69
|
+
|
70
|
+
def main(url,driver_path,download_dir):
|
71
|
+
dict = get_date()
|
72
|
+
driver = init_selenium(driver_path,download_dir)
|
73
|
+
hack(url,dict,driver)
|
74
|
+
|
75
|
+
def get_date():
|
76
|
+
yesterday = datetime.date.today() - datetime.timedelta(1)
|
77
|
+
dict = {}
|
78
|
+
dict['y']=yesterday.year
|
79
|
+
dict['m']=yesterday.month
|
80
|
+
dict['d']=yesterday.day
|
81
|
+
return dict
|
82
|
+
|
83
|
+
def hack(url,dict,driver):
|
84
|
+
|
85
|
+
#driver = webdriver.Chrome('C:/Users/10001205180/Desktop/selenium/chromedriver')
|
86
|
+
driver.get(url)
|
87
|
+
|
88
|
+
time.sleep(1)
|
89
|
+
driver.find_element_by_id('pr51').click()#愛知を選択
|
90
|
+
time.sleep(2) #5秒遅らせる
|
91
|
+
|
92
|
+
element = driver.find_element_by_xpath("//div[@id='stationMap']/div[7]/div")
|
93
|
+
element.click()#名古屋を選択
|
94
|
+
time.sleep(2)
|
95
|
+
|
96
|
+
driver.find_element_by_id('elementButton').click()#項目選択画面へ
|
97
|
+
time.sleep(1)
|
98
|
+
|
99
|
+
driver.find_element_by_xpath("//div[@id='aggrgPeriod']/div/div/div/label/span").click()#時別値を選択
|
100
|
+
time.sleep(1)
|
101
|
+
|
102
|
+
driver.find_element_by_id('気温').click()#気温を選択
|
103
|
+
|
104
|
+
driver.find_element_by_id('相対湿度').click()#湿度を選択
|
105
|
+
|
106
|
+
driver.find_element_by_id('periodButton').click()#期間指定画面へ
|
107
|
+
time.sleep(1)
|
108
|
+
|
109
|
+
starty_element = driver.find_element_by_xpath("//div[@id='selectPeriod']/div/div/div[2]/div[2]/select")
|
110
|
+
starty_select_element = Select(starty_element)
|
111
|
+
starty_select_element.select_by_value(str(dict['y']))
|
112
|
+
|
113
|
+
startm_element = driver.find_element_by_xpath("//div[@id='selectPeriod']/div/div/div[2]/div[2]/select[2]")
|
114
|
+
startm_select_element = Select(startm_element)
|
115
|
+
startm_select_element.select_by_value(str(dict['m']))
|
116
|
+
|
117
|
+
startd_element = driver.find_element_by_xpath("//div[@id='selectPeriod']/div/div/div[2]/div[2]/select[3]")
|
118
|
+
startd_select_element = Select(startd_element)
|
119
|
+
startd_select_element.select_by_value(str(dict['d']))
|
120
|
+
####################################################################################################################
|
121
|
+
endy_element = driver.find_element_by_xpath("//div[@id='selectPeriod']/div/div/div[2]/div[3]/select")
|
122
|
+
endy_select_element = Select(endy_element)
|
123
|
+
endy_select_element.select_by_value(str(dict['y']))
|
124
|
+
|
125
|
+
endm_element = driver.find_element_by_xpath("//div[@id='selectPeriod']/div/div/div[2]/div[3]/select[2]")
|
126
|
+
endm_select_element = Select(endm_element)
|
127
|
+
endm_select_element.select_by_value(str(dict['m']))
|
128
|
+
|
129
|
+
endd_element = driver.find_element_by_xpath("//div[@id='selectPeriod']/div/div/div[2]/div[3]/select[3]")
|
130
|
+
endd_select_element = Select(endd_element)
|
131
|
+
endd_select_element.select_by_value(str(dict['d']))
|
132
|
+
|
133
|
+
out_element = driver.find_element_by_xpath("//span[@id='csvdl']/img").click()
|
134
|
+
time.sleep(3)
|
135
|
+
driver.quit()
|
136
|
+
|
137
|
+
def init_selenium(driver_path,download_directory):
|
138
|
+
###Chromeへオプションを設定
|
139
|
+
chop = webdriver.ChromeOptions() #
|
140
|
+
prefs = {"download.default_directory" : download_directory}
|
141
|
+
chop.add_experimental_option("prefs",prefs)
|
142
|
+
chop.add_argument('--ignore-certificate-errors') #SSLエラー対策
|
143
|
+
driver = webdriver.Chrome(driver_path,chrome_options = chop)
|
144
|
+
return driver
|
145
|
+
|
146
|
+
if __name__ == '__main__':
|
147
|
+
url = 'https://www.data.jma.go.jp/gmd/risk/obsdl/index.php'
|
148
|
+
driver_path = 'C:/Users/user/Desktop/selenium/chromedriver'
|
149
|
+
download_dir = 'c:\Users\user\Desktop'
|
150
|
+
main(url,driver_path,download_dir)
|
151
|
+
```
|