ここでは、「Selenium」を用いたブラウザ操作とスクレイピング方法について解説しています。
この記事の対象
「Selenium」とは
「Selenium」とはWebブラウザの操作を自動化するためのフレームワークになります。
「Selenium」を用いるメリット
項目 | 内容 |
JavaScript構造のサイトのスクレイピング | 「requestsモジュール」だけでは全てのサイトからスクレイピングできるとは言えません。そこで、ブラウザを経由したスクレイピングを行うことで、JavaScriptを用いたサイトのスクレイピングができます。 |
操作範囲が広い | 通常のスクレイピングに比べると、「Selenium」を用いると画面キャプチャなどの操作ができます。HTMLの文字列をスクレイピングするだけではなく文字入力などもできるので、様々な応用が可能です。 |
「Selenium」のインストール
「Selenium」を使用するにはpipでインストールしておく必要があります。
$ pip install selenium
また、webdriverのバージョン管理として以下のライブラリをインストールしておくと便利です。
$ pip install webdriver-manager
「Selenium」を用いた使用例
import time
from selenium import webdriver
#1---webdriver-managerの指定
from webdriver_manager.chrome import ChromeDriverManager
#2---webdriverの立ち上げ
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('http://www.google.com/');
time.sleep(5)
#3---検索
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5)
driver.quit()
上記のプログラムはchrome が立ち上がり、5秒後に 「ChromeDriver」という文字列でGoogle検索をします。その間「Chrome は自動テスト ソフトウェアによって制御されています。」と表示されており、5秒経つと閉じる内容になっています。
以下は解説です。
#1---webdriver-managerの指定
from webdriver_manager.chrome import ChromeDriverManager
1の部分ではwebdriverのバージョン管理のライブラリをimportしています。
#2---webdriverの立ち上げ
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('http://www.google.com/');
time.sleep(5)
「webdriver.Chrome(ChromeDriverManager().install())」ではバージョンの不一致を防ぐために「ChromeDriverManager()」を指定しています。
#3---検索
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5)
driver.quit()
3の部分では最初に「q」で検索窓を調べています。次に検索窓に「ChromeDriver」を入力しています。次に、検索して5秒で閉じています。
結果
「ChromeDriver」の詳細については以下のサイトをご参照下さい。
その他、ブラウザを用いたスクレイピング例
項目 | 内容 |
指定したサイトの画面をキャプチャする方法 | リンク先ではSeleniumを使用して指定したサイトの画面をキャプチャする方法について解説しています。 |