seleniumの導入方法
seleniumの導入はまずインストールする必要があります。
ColaboratoryのJupyter Notebookdでpipを使ってインストールする場合は下記のようにします。「!」を付けることでターミナルと同様にpipコマンドが使えるようになります。
!pip install selenium
次に、Colaboratoryでseleniumを使用したスクレイピングをするにはブラウザのパス設定で行き詰まります。
通常の「Chrome」や「Firefox」を使うのではなく、その代わりに「phantomjs」を使えば解決できます。
「phantomjs」はWebKitベースのヘッドレスブラウザです。つまり一般的なブラウザのように描画はしないブラウザです。
magic commandの使い方
magic commandとは、Jupyterで使える %
ではじまる便利コマンドのことです。magic commandを活用して「%cd」を使うことでコードの中でカレントディレクトリを変更することができます。
また、「%%bash」」
を使い、シェルコマンドを実行するセルに変更することができます。
次のコードは現在のカレントディレクトリにsrcディレクトリを作成して、その後「src」ディレクトリに移ってからphantomjsを取得します。
%%bash
mkdir ~/src
cd ~/src
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
%%bash
cd ~/src
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
cd phantomjs-2.1.1-linux-x86_64/bin/
mv phantomjs /usr/local/bin/
seleniumのインポートと取得したいデータのあるページのアドレス(架空のアドレスです) 「http://www.example.com/sample.html」を指定してデータを取得します。
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
options = Options()
options.set_headless(Options.headless)
browser = webdriver.PhantomJS()
browser.implicitly_wait(3)
browser.get('http://www.example.com/sample.html')
データのある要素のclass名を指定してデータを取得します。
elem = browser.find_elements_by_class_name('item')
取得したデータはリスト形式で保存されていますので、必要なデータのインデックス番号を指定してデータを表示確認した状態です。
elem[1].text