蒲田さん
の編集
Top
/
蒲田さん
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
島部/menu/template
[[由利恵]] *目次 [#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() **4. [#md0e8b70] **5. [#u400ec4c]
タイムスタンプを変更しない
[[由利恵]] *目次 [#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() **4. [#md0e8b70] **5. [#u400ec4c]
テキスト整形のルールを表示する