seleniumを使ったスクレイピング(Python)

手順

seleniumのインストール

pip install selenium

WebDriverのインストール

Seleniumのサイトから各種ブラウザのWebDriverをダウンロードすることができます。

Google Chrome Driverを使いましたが、 自動テストにはPhantomJSの方が便利かもしれません。

Downloads - ChromeDriver - WebDriver for Chrome

使う

ボタン押下などの操作を記述することもできます。

driver = webdriver.Chrome(ダウンロードしたWebDriverのパス)

# Web APIを使ってDOMアクセスする
# driver.open(アクセスする対象URL)
# elem = driver.find_element_by_id(ID)
# テキスト要素取得
#elem.text

# ブラウザを閉じる
driver.quit()

Tips

XPathの書き方

# ドキュメントルートから要素を検索します
driver. find_elements_by_xpath(‘//div[@class=“container”])

element = driver.find_element_by_id(‘top’)
# 子要素から対象のXPath要素を検索します
element.find_elements_by_xpath(‘.//div[@class=“container”])

# ドキュメントルートから対象のXPath要素を検索します
element.find_elements_by_xpath(‘//div[@class=“container”])

要素がない場合の処理

要素がない場合は、NoSuchElementExceptionがストーされるので処理します。

    # 例外のimportが必要
    from selenium.common.exceptions import NoSuchElementException

    try:
        elemement = driver.find_element_by_class_name(クラス名)
        処理
    except NoSuchElementException:
        例外発生時の処理

スクリーンショット

エビデンスを残す場合に便利です。不具合が発生した時に確認するのには便利ですが、開発時にチェックするのは…あれですね。

driver.save_screenshot(“scenario_1-1")

ソース取得

回帰テストに使えます。

driver. page_source

リンク