#author("2024-02-25T08:31:12+00:00","","")
#author("2024-02-25T08:34:24+00:00","","")
[[由利恵]]

*目次 [#u5609921]
#CONTENTS
*プログラム [#r3c4f2b1]
#ref(flask.zip)
#ref(scraping2 .ipynb)

両方ともGoogle Drive2324の蒲田さんのプログラムに入っている~

*スクレイピング [#c94666a4]
**1. Google Driverをダウンロード[#r1a844d8]
[[chromedriver:https://chromedriver.chromium.org/downloads]]
#ref(g1.png,,30%)
#ref(g2.png,,30%)
自分のパソコンのバージョンにあったものを入れる~

flaskの中にchromedriverというフォルダを作成する~

そこに「chromedriver.exe」を移す~

**2. app.pyを実行[#m5c71123]

46行目・222行目を「chromedriver.exe」の場所に書き換える

**3. scraping2 .ipynbを立ち上げる[#vea3ac98]
***1.以下の画像通りに選択されるようにする [#c4a2eea2]
[[日本銀行時系列統計データ検索サイト:https://www.stat-search.boj.or.jp/]]
#ref(g3.png,,30%)
#ref(g4.png,,30%)
#ref(g5.png,,30%)
#ref(g6.png,,30%)
#ref(g7.png,,30%)
#ref(g8.png,,30%)
***2.Xpathを取得する [#tf4fa39c]
クリックしたい部分を右クリックし「検証」を押す~
#ref(g10.png,,30%)
該当する部分を「Copy→Copy Xpath」でコピーをする~
#ref(g11.png,,30%)
***3. プログラムに書く[#d6fca478]
+コードで新しいのを立ち上げコピーする~
 def scraping():
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    import time
    from selenium.webdriver.chrome.service import Service
    from selenium.webdriver.chrome.service import Service as ChromeService
    from webdriver_manager.chrome import ChromeDriverManager
    from pathlib import Path
    import pandas as pd
    import os
    start_year = 2000
    options = webdriver.ChromeOptions()
    #options.add_argument('--headless')
    options.add_argument('--no-sandbox')
    options.add_argument('--disable-dev-shm-usage')
    dldir_path = Path('csv')  # csv という名前のフォルダとする
    dldir_path.mkdir(exist_ok=True)  # なければ作成
    download_dir = str(dldir_path.resolve())  # 絶対パスを取得
    print("download_dir: " + download_dir)
    options.add_experimental_option('prefs', {    # Chrome のオプションに
    'download.default_directory': download_dir  # 絶対パスで指定  
    })
    service = Service(executable_path='C:/Users/tc22m064/Desktop/引継ぎ/(蒲田さん)/flask/driver/chromedriver.exe')
    driver = webdriver.Chrome(service=service, options=options)
    driver.implicitly_wait(10)

以下のものを適切な形に変え保存し実行する

#ref(g12.png,,50%)
 for i in range(1,3): 
     print(i)
     driver.get("https://www.stat-search.boj.or.jp/")
     elem = driver.find_element(By.XPATH, '//*[@id="toukei_11"]/a/img')
     elem.click()
     elem = driver.find_element(By.XPATH, '//*[@id="toukei_11"]/ul/li[1]/a')
     elem.click()
     elem_tenkai = driver.find_element(By.XPATH, '//*[@id="menuSearchTabpanel"]/div[2]/div[1]/div[1]/table/tbody/tr[1]/td[2]')
     elem_tenkai.click()
     elem_check = driver.find_element(By.XPATH, '//*[@id="menuSearchTabpanel"]/div[2]/div[1]/div[2]/input')
     elem_check.click()
     elem = driver.find_element(By.XPATH, '//*[@id="menuSearchDataCodeList"]/tbody/tr[1]/td/label')
     elem.click()
     elem = driver.find_element(By.XPATH, '//*[@id="menuSearchTabpanel"]/div[2]/div[2]/div[4]/a')
     elem.click()
     elem_start_year = driver.find_element(By.XPATH, '//*[@id="fromYear"]')
     start_year = elem_start_year.send_keys(start_year)
     elem = driver.find_element(By.XPATH, '//*[@id="resultArea"]/div[4]/ul/li[1]/a')
     elem.click()
     handle_array = driver.window_handles
     driver.switch_to.window(handle_array[i])
     elem = driver.find_element(By.XPATH, '/html/body/div[2]/div/div[2]/table/tbody/tr[2]/td[5]/a')
     elem.click()
     handle_array = driver.window_handles
     driver.switch_to.window(handle_array[i+1])
     elem = driver.find_element(By.XPATH, '/html/body/div[2]/div/div/div/table/tbody/tr/td/a')
     elem.click()
 scraping()

#ref(g12.png,,30%)

**4. [#md0e8b70]
**5. [#u400ec4c]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS