人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Python mechanizeに詳しい方に質問です。

Python mechanizeを使って、

JTBのサイトからツアー商品の情報を自動収集したいと思っています。

例えば、

下記のリンクにPCのブラウザ上から飛ぶと、

http://ovspkg.jtb.co.jp/pkg/toursearch/search_result.aspx?deptplacecd=HND&destareacd=HWI

羽田出発、目的地ハワイのツアー商品が

読み込み中と出た後、ブラウザ上で表示されますが、

下記のコードを使って、スクレイピングすると、

br = mechanize.Browser()$
br.addheaders = [('User-agent', 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20')]
br.open('http://ovspkg.jtb.co.jp/pkg/toursearch/search_result.aspx?deptplacecd=HND&destareacd=HWI')
print br.response().resd()

読み込みという状態でのHTMLは取得できませんが、

その後の読み込み後のリンクなどを取得できません。

どうにか、読み込み後のHTMLを取得したいのですが、

良い方法を知っている方はいらっしゃいませんでしょうか?

よろしくお願いします。

●質問者: 匿名質問者
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 匿名回答1号
ベストアンサー

検索結果はajaxで取ってきています。なのでjavascriptを実行するか、エミュレーションする必要があります。

一つはjavascriptも解釈してくれるツールを使うことです。
http://hatakazu.hatenablog.com/entry/2012/06/10/083928
http://qiita.com/tekkoc/items/f610289c7ce36f680d94

も一つは人力でアクセスやスクリプトを解析してpythonで必要な事を行います。
簡単なことなら出来ますね。
http://d.hatena.ne.jp/mohayonao/20120101/1325374486

複雑なのも根気よく解析すれば不可能ではないですが...
JTBのも難読化されているわけでもないようですが...
...

mechanizeは諦め、も一つの方を勧めます。


匿名質問者さんのコメント
早速の回答ありがとうございます。 オススメされた一つ目のリンク先で紹介されているseleniumを使用することで、 無事スクレイピングをすることができました。 本当にありがとうございます。 もしかしたら、同じ悩みを持っている人がいるかもしれませんので、 自分のプログラムものせておきます。 from selenium import webdriver browser = webdriver.Firefox() # Get local session of firefox browser.get('http://ovspkg.jtb.co.jp/pkg/toursearch/search_result.aspx?deptplacecd=HND&destareacd=HWI') sleep(15);%読み込み終わりまで待つ print browser.page_source.encode("utf_8","ignore") 本当にありがとうございました。 実は、今回初めて質問サイトを使用しましたが、 こんなに早く、的確な回答が来て驚いています。 自分も早く様々な人を助けられるように勉強していきたいです。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ