Python3.5+Selenium+PhantomJSでサーバサイドでスクレイピング②
- 2016/7/7
- システム
- この記事は約2分で読めます。
Python3.5、Selenium、PhantomJSによるスクレイピング実践編
前回は、サーバサイドでのスクレイピングを実践していくにあたり、
筆者オススメ組み合わせのPython3.5、Selenium、PhantomJSの
インストール方法をご紹介しました。
ただ、
Python3.5は良いのですが、
Selenium、PhantomJSは、使用にあたって
とっつきにくいところがどうしてもあると思うので、
今回は、実際に簡単なスクレイピングを実践していきます!
コードの内容としては、
PythonでSeleniumを動作させて、
SeleniumがPhantomJSを実行させている感じです。
簡単なスクレイピングコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
from selenium import webdriver def main(): # ユーザエージェントの設定 USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36" # 言語の設定 Language = "ja,en-US"; # phantom.jsのログの吐き出しパスを設定 log_path = '/var/log/phantomjs.log' # seleniumの設定 # ここでは、ログの吐き出しレベルとsslのエラーを無視するように設定 service_args = ["--webdriver-loglevel=INFO" , '--ignore-ssl-errors=yes',] # phantomjsの起動 driver = webdriver.PhantomJS( desired_capabilities={ 'phantomjs.page.settings.userAgent': USER_AGENT, 'phantomjs.page.customHeaders.Accept-Language' : Language, }, service_log_path=log_path,service_args=service_args ) # URLにアクセス driver.get("http://macbeese.com/") # htmlの取得 data = driver.page_source # スクリーンショットも撮れます data = driver.save_screenshot("macbeese.png") # phantomjsの終了 driver.quit() if __name__ == "__main__": main() |
※
htmlの取得やスクリーンショットも撮ったときに
文字化けしてたり、そもそも文字が表示されない場合は、
OSにフォントがインストールされていないからかもです
それに気づくまでに結構はまりました(;´Д`)
CentOSの場合は、/usr/share/fontsの配下を確認してみて下さい!
最後に
サーバサイドからのスクレイピングの第二回目として、
Python3.5、Selenium、PhantomJSを使った
簡単なスクレイピングコードをご紹介しました。
ユーザエージェント、言語の設定とか調べても意外と
みつからず苦労したのが懐かしいです。
Pythonなので、もちろんデータベースへの接続もできますし、
PhantomJSは、れっきとしたブラウザなので、ブラウザでの
リダイレクトもエミュレーションできます!
その内、そのあたりも記事にしていこうかなと
最後までご高覧頂きまして有難うございました。
The following two tabs change content below.
デミ
Z or R Twice
で検索すると…
最新記事 by デミ (全て見る)
- 【20分で完了】MacにDocker for Macのインストール - 2017/02/02
- 【2017年版】Web接客ツール9社を比較してみた - 2017/01/26
- 【昼休み中に完了!】Macで最新Ruby、Railsのインストールから画面表示まで - 2017/01/19