【Selenium】初めてのスクレイピング
スクレイピングに関する注意事項
注意事項は、下記を参考にしました。
事前に読んでおきましょう!
Webスクレイピングの注意事項一覧 - Qiita
Webスクレイピングの法律周りの話をしよう! - Qiita
Seleniumの全体像
下記を参考に見ておきます。
[Selenium] -> [ChromeDriver] -> [Google Chrome]
環境構築
仮想環境
virtualenv
インストール
pip install selenium
chromeのバージョン確認
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version
バイナリ形式でダウンロード
Downloads - ChromeDriver - WebDriver for Chrome
どこで使うのか
下記のような形で使用することになります。
driver = Chrome('path', options=options)
driver.get('url')
コマンドラインだけでWebブラウザのバージョンを調べる - Qiita
さて実装だ!
スクレイピングするときに考えること
事前に下記の2つを把握しておきます。
- どのようなアウトプットになるかの確認
- DOM構造の理解
詳細
import csv
import pandas as pd
from selenium.webdriver import Chrome, ChromeOptions
from selenium.webdriver.common.by import By
options = ChromeOptions()
options.add_argument('--headless')
print('Connectiong to Remote Browser...')
driver = Chrome('chromedriverがあるパス', options=options)
# 検索結果
driver.get('対象のurl')
# 一覧ページ取得
detail_links = driver.find_elements(By.XPATH,'//div[@class="productImg-wrap"]')
print(len(detail_links))
# 詳細ページリスト化
detail_results = []
for element in detail_links:
aTag = element.find_element_by_tag_name("a")
url = aTag.get_attribute("href")
detail_results.append(url)
# 空のDataFrameを用意
cols = ['brand_name', 'url']
df = pd.DataFrame(index=[], columns=cols)
# 結果をリスト化
final_results = []
for url in detail_results:
driver.get(url)
article_links = driver.find_elements(By.XPATH,'//div[@class="attributes-list"]')
print(article_links)
# データフレームを作成
record = pd.Series([article_links[0].text, url], index=df.columns)
df = df.append(record, ignore_index=True)
df.to_csv("output.csv")
# ブラウザを終了
driver.quit()
driver.find_elements(By.XPATH,'//div[@class="attributes-list"]')
これが、class名で、要素を取得する実装になります。
PythonでSeleniumを使ってスクレイピング (基礎) - Qiita
Selenium API(逆引き)
2. Getting Started — Selenium Python Bindings 2 documentation
Chain
その他の実装は下記から確認することができます。
7. WebDriver API — Selenium Python Bindings 2 documentation
その他参考記事
Python + Selenium で Chrome の自動操作を一通り - Qiita
ChromeとPythonのchromedriver-binaryのバージョンを合わせたい。 - Qiita
次は?
E2Eテストで使えるようにしていきたいですね。
Author And Source
この問題について(【Selenium】初めてのスクレイピング), 我々は、より多くの情報をここで見つけました https://qiita.com/wqwq/items/37a6fff795c8a5843457著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .