import time
from pathlib import Path
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.select import Select
# ダウンロード先フォルダの指定
dldir_path = Path('/Users/mbp441/Desktop/tenki') # csv という名前のフォルダとする
dldir_path.mkdir(exist_ok=True) # なければ作成
download_dir = str(dldir_path.resolve()) # 絶対パスを取得
print("download_dir: " + download_dir)
options = webdriver.ChromeOptions()
options.add_experimental_option('prefs', { # Chrome のオプションに
'download.default_directory': download_dir # 絶対パスで指定
})
driver_path = '/Users/mbp441/Desktop/github/PYTHON/chromedriver'
driver = webdriver.Chrome(executable_path=driver_path, options=options)
wait = WebDriverWait(driver, 10) # 明示的待機用 (Timeout 10秒)
# 自動操作開始
driver.get('https://www.data.jma.go.jp/gmd/risk/obsdl/index.php')
# 「地点を選ぶ」
xpath = '//div[@class="prefecture" and text()="東京"]'
time.sleep(2)
driver.find_element_by_xpath(xpath).click()
xpath = '//div[@class="station" and contains(@title, "地点名:東京")]'
time.sleep(2)
driver.find_element_by_xpath(xpath).click()
# 「項目を選ぶ」
driver.find_element_by_id('elementButton').click()
xpath = '//span[text()="月別値"]/preceding-sibling::input' #XPATH参照
time.sleep(2)
driver.find_element_by_xpath(xpath).click()
css = '#日最高気温の平均'
time.sleep(2)
driver.find_element_by_css_selector(css).click()
# 「期間を選ぶ」
driver.find_element_by_id('periodButton').click()
time.sleep(2)
# <select>内の<option>要素を選択
Select(driver.find_element_by_name('iniy')).select_by_value('2010')
Select(driver.find_element_by_name('inim')).select_by_value('1')
time.sleep(2) # いったん止めてみる
Select(driver.find_element_by_name('endy')).select_by_value('2019')
Select(driver.find_element_by_name('endm')).select_by_value('12')
time.sleep(2)
# 「CSVファイルをダウンロード」
driver.find_element_by_id('csvdl').click()
time.sleep(2)
driver.quit()