第6回 12月07日 スクレイピング
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
*目標 [#z00fd092]
釣り情報サイト(https://anglers.jp/)から富山湾の釣り場情...
*スクレピングとは [#h82a02b0]
スクレピングとは,Webサイトから大量の情報を字と動的に抽出...
&br;
Webスクレイピングは、Webサイトやデータベースを探り、大量...
*環境 [#h82a02b0]
Python 3.11 64bitで行う.(他でも可)&br;
seleniumはバージョン4を用いる。
**準備 [#j661bc61]
***ChromeDriverのインストール [#j661bc61]
まず、ChromeDriverをインストールする.自身のGoogleChrome...
(https://chromedriver.chromium.org/downloads)。
***seleniumのインストール [#j661bc61]
seleniumをインストールする.バージョン3でもよいが,プログ...
<pythonのとき>
pip install selenium
<notebookのとき>
!python -m pip install selenium
*動作実験(googleでの検索結果の取得) [#h82a02b0]
**必要なモジュールをインポートする. [#h00fd477]
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
**driverのオプションを設定する. [#b380d497]
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
--headless ヘッドレスモード(バックグラウンドで起動)
--no-sandbox sandboxモードを解除する(クラッシュ回避)
--disable-dev-shm-usage パーティションが小さすぎることに...
**chromedriverのパスを設定する. [#b380d497]
インストールしたchromedriver.exeの場所を指定する.
driver_path = "chromedriver-win64/chromedriver.exe"
service = Service(executable_path=driver_path)
**driverを作成する. [#b380d497]
driver1 = webdriver.Chrome(service=service, options=opti...
driver1.implicitly_wait(10)
--implicitly_wait(10) 指定した時間要素が見つかるまで待機.
**urlの情報を取得する. [#b380d497]
url = "https://www.google.com/search?q=%E9%87%A3%E3%82%8...
driver1.get(url)
**XPATHを使って要素を取得して表示. [#b380d497]
link = driver1.find_elements(By.XPATH, '//span/a/h3')
for i in link:
print(i.text)
*課題1 [#bb5c41a2]
**すべて見るボタンをクリックしてスクレピングをする. [#s1...
all = driver1.find_element(By.XPATH, '/html/body/main/di...
driver1.execute_script('arguments[0].click();', all)
要素をクリックする.ここでall.click()としてもよいが,クリ...
*課題2 [#bb5c41a2]
**さらに,それぞれの要素をクリックして釣り情報の詳細を取...
link = driver1.find_elements(By.XPATH, '/html/body/main/...
syousai = []
for i in range(len(link)):
driver1.execute_script('arguments[0].click();', link[...
kikan = driver1.find_element(By.XPATH, '/html/body/ma...
syousai.append(kikan.text)
driver1.back()
link = driver1.find_elements(By.XPATH, '/html/body/ma...
取得した情報をデータフレームに入れる
import pandas as pd
kirei = syousai[0].replace('\u3000', '').split('\n')
syousai_df = pd.DataFrame([{'1' : kirei[i*2], '2' : kire...
range(int(len(kirei)/2))])
時間内でできたところ
#ref(fish.png,,)
終了行:
*目標 [#z00fd092]
釣り情報サイト(https://anglers.jp/)から富山湾の釣り場情...
*スクレピングとは [#h82a02b0]
スクレピングとは,Webサイトから大量の情報を字と動的に抽出...
&br;
Webスクレイピングは、Webサイトやデータベースを探り、大量...
*環境 [#h82a02b0]
Python 3.11 64bitで行う.(他でも可)&br;
seleniumはバージョン4を用いる。
**準備 [#j661bc61]
***ChromeDriverのインストール [#j661bc61]
まず、ChromeDriverをインストールする.自身のGoogleChrome...
(https://chromedriver.chromium.org/downloads)。
***seleniumのインストール [#j661bc61]
seleniumをインストールする.バージョン3でもよいが,プログ...
<pythonのとき>
pip install selenium
<notebookのとき>
!python -m pip install selenium
*動作実験(googleでの検索結果の取得) [#h82a02b0]
**必要なモジュールをインポートする. [#h00fd477]
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
**driverのオプションを設定する. [#b380d497]
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
--headless ヘッドレスモード(バックグラウンドで起動)
--no-sandbox sandboxモードを解除する(クラッシュ回避)
--disable-dev-shm-usage パーティションが小さすぎることに...
**chromedriverのパスを設定する. [#b380d497]
インストールしたchromedriver.exeの場所を指定する.
driver_path = "chromedriver-win64/chromedriver.exe"
service = Service(executable_path=driver_path)
**driverを作成する. [#b380d497]
driver1 = webdriver.Chrome(service=service, options=opti...
driver1.implicitly_wait(10)
--implicitly_wait(10) 指定した時間要素が見つかるまで待機.
**urlの情報を取得する. [#b380d497]
url = "https://www.google.com/search?q=%E9%87%A3%E3%82%8...
driver1.get(url)
**XPATHを使って要素を取得して表示. [#b380d497]
link = driver1.find_elements(By.XPATH, '//span/a/h3')
for i in link:
print(i.text)
*課題1 [#bb5c41a2]
**すべて見るボタンをクリックしてスクレピングをする. [#s1...
all = driver1.find_element(By.XPATH, '/html/body/main/di...
driver1.execute_script('arguments[0].click();', all)
要素をクリックする.ここでall.click()としてもよいが,クリ...
*課題2 [#bb5c41a2]
**さらに,それぞれの要素をクリックして釣り情報の詳細を取...
link = driver1.find_elements(By.XPATH, '/html/body/main/...
syousai = []
for i in range(len(link)):
driver1.execute_script('arguments[0].click();', link[...
kikan = driver1.find_element(By.XPATH, '/html/body/ma...
syousai.append(kikan.text)
driver1.back()
link = driver1.find_elements(By.XPATH, '/html/body/ma...
取得した情報をデータフレームに入れる
import pandas as pd
kirei = syousai[0].replace('\u3000', '').split('\n')
syousai_df = pd.DataFrame([{'1' : kirei[i*2], '2' : kire...
range(int(len(kirei)/2))])
時間内でできたところ
#ref(fish.png,,)
ページ名: