前回の続き。
PhantomJS + selenium を使ってみる - goodbyegangsterのブログ
取得したhtmlソースを解析する方法として、PyQueryかBeautifulSoupを利用する方法があるようです。ネット上でのコメントを読む限り、どっち使っても結局変わらないよ。ただし、PyQueryはJqueryと同じようなAPIを提供してくれるので、とっかかりやすいよ、と。BeatifulSoupだと、新たにメソッド名とか覚える必要あるから、そらならPyQueryでいいんじゃね、って感じの意見が多いです。
ということで、PyQueryを利用して解析していきます。
以下URLはマニュアル。これ読めばおおよそ書けます。
pyquery: a jquery-like library for python — pyquery 1.2.4 documentation
解析の前段階として、selenium+PhantomJSで仮想ブラウザを作成してyahoo japanにアクセスするの、PhantomJSからhtmlソースを渡してPyQueryオブジェクトを作成。
import os from selenium import webdriver from pyquery import PyQuery browser = webdriver.PhantomJS(service_log_path=os.path.devnull) browser.get("http://www.yahoo.co.jp/") d = PyQuery(browser.page_source)
オブジェクトができれば、APIがたくさん用意されているので、マニュアルを参考に書いてあげればOK。
以下の例はトップページの記事一覧を表示をする処理。
for item in d.find("div.topicsindex").find("li").items(): item.text() '台風 あす西日本中心に大荒れ 写真' '福島原発 国費8兆円増求める 写真' '毒ぶどう酒 無罪訴え新証拠 動画' '鍵番号で合鍵作り侵入 男逮捕 写真 NEW' 'ヒトラー発言 比記者に中傷 写真 NEW' 'シャラポワ 処分15カ月に短縮 写真' 'J1磐田 不倫報道の選手に罰金 写真 NEW' 'ミス慶應2016中止 運営不祥事' 'もっと見る' '記事一覧'
結構さくさく情報取得できましたね。便利です。