Selenium でクローリングする環境を構築する際に chromedriver を公式サイトからインストールして path の指定してあげないとエラーになるので解決方法についてメモしておく。
今まで WEBスクレイピングや HTML整形は UNIX のコマンドを使ってやっていたのだけど、『今年やってよかったこと『自由な働き方をはじめた × 毎日遊ぶように働く』この掛け算で人生はより楽しくなりそうだ!』の記事にも書いたようにドンドン新しいことに挑戦していこうと思い Python の勉強に web スクレイピングに挑戦してみた。
Pythonの勉強にwebスクレイピングをしてみる
Python + Selenium + Phantom.js + Beautifulsoup というような構成では実行すると以下のようなエラーが・・・
1 2 3 | UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless ' Traceback (most recent call last): |
Seleniumでエラー
どうやら現在は Phantom.js はメンテナンスが終了しているため Google Chrome を使うのだが、 Selenium でクローリングする環境を構築する際に chromedriver がある場所を指定してあげないとエラーになる。
1 2 | selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home |
Selenium で chromedriver を使うには公式サイトで chromedriver をインストールして path を指定する必要がある。
解決方法:公式サイトから最新版 chromedriver をダウンロード
エラーコードそのままに対応する。公式サイトから最新版の ChromeDriver をダウンロードして解凍したら /usr/local/bin の下に chromedriver を移動する。
解決方法:chromedriver のパスを指定
1 | driver = webdriver.Chrome('/usr/local/bin/chromedriver') |
と指定してあげることでエラーは解決した。
サンプルコードでテスト
1 2 3 4 5 6 7 8 9 10 11 12 | import time from selenium import webdriver driver = webdriver.Chrome('/usr/local/bin/chromedriver') driver.get('http://www.google.com/xhtml'); time.sleep(5) search_box = driver.find_element_by_name('q') search_box.send_keys('ChromeDriver') search_box.submit() time.sleep(5) driver.quit() |
上記のサンプルコードを実行すると

Google Chrome を使ってこんなことが簡単に自動化できる。
まとめ
Python を使って大量なデータを取得して、データ整形して解析までの一通りの流れを実際にコードを書きながら勉強してみようと思う。どうせやるなら面白いネタになりそうなものを分析してみようかなと思う。
最大無料で受講開始!プログラミングスクール「CodeShip」というようなプログラミングスクールの教えてもらえる環境で、人工知能や機械学習などの開発に適した言語である Python 学習をするのがおすすめだ。