Colaboratoryでスクレイピングする方法

AI
スポンサーリンク

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
タイトルとURLをコピーしました