2012-04-07 13 views
8

次のURLのデータをPythonを使用して削りたいと思っています。 http://www.hankyung.com/stockplus/main.php?module=stock&mode=stock_analysis_infomation&itemcode=078340Pythonを使用してjavascriptで生成されたデータを掻き立てる

会社概要の概要です。

最初のページにスクラップしたいものは表示されません。 "財産明細"タブをクリックすると、財務諸表にアクセスできます。そして、名前のタブをクリックするキャッシュ・フローの「현금흐름표」を、あなたがアクセスすることができます 『』。

を私はこすりしたい 『キャッシュ・フロー』のデータを。

しかし、キャッシュ・フロー・データは、URL全体ではJavaScriptによって生成される。 次のリンクは隠されているURL、http://stock.kisline.com/compinfo/financial/main.action?vhead=N&vfoot=N&vstay=&omit=&vwidth=

キャッシュ・フロー・データは、このURLにいくつかのオプションの値とクッキーを提出することによって生成されるということです。あなたが知覚される

、最初のリンクでitemcode = 078340は、証券コードを意味し、キャッシュフローデータを収集したいと思っている株式は1680株もあります。蟻はそれをループ構造にします。

キャッシュフローデータをスクラップする良い方法はありますか? 私はscrapyを試みましたが、私が使っているもう一つのscrapingコードには治療が難しいです。

+0

データは、サーバーからのajaxによって引っ張られるか、何とか(JS変数や 'data-'のように)html内に格納されますか? – Tadeck

+1

サービス規約はこれを可能にしますか? – luke14free

+0

Tadeckでは、データはサーバーから取得されます。 – trigger

答えて

1

あなたはAJAXで更新されたページの内容をスケープする必要があると私は仕事のためのセレンブラウザのAutomatorを使用することになり、このAJAXインタフェースの制御になっていない場合:

http://code.google.com/p/selenium/

  • SeleniumにはPythonバインディングがあります

  • 実際のブラウザインスタンスを起動するので、自分の目で見たのと同じことを100%実行できます。

  • 取得HTMLセレンAPIドキュメントのうち関連部分を解析する

  • 使用lxmlの+のxpath/CSSセレクタスルーAJAXの更新後の文書の内容が

+0

ありがとうございました。私はセレンを試してみるつもりです。 – trigger

+0

私はjqueryをこのlxml + xpath部分の末尾に置き換えることができます(そして、残りの手順に従います)? – abbood

+0

Seleniumには独自のCSSセレクタエンジンが付属しているので、おそらくjQueryもlxmlも必要ありません。 –

9

dryscape(で書かれたライブラリがあります私は、推薦はビットバイアスされている、明らかに:)高速Webkitベースのメモリ内のブラウザを使用して移動する。 Javascriptも理解していますが、Seleniumよりも軽量です。

+0

ありがとうございます。私はそれを試してみます – trigger