2012-01-12 9 views
0

私はエクスプローラーの下にウェブページを持っています。ご覧のとおり、FXとウェブサイトのすべての取引記録をここに掲載しています:このページの完全なHTMLソースを「more」ボタンで読むには

http://www.forexfactory.com/trades.php?reset=1

私は通常、Pythonを使ってソースコードを読んで、その情報をBeautifulSoupで解析します。しかし、この場合には、あなたが見ることができるように、ここでペインの末尾に「より」クリック可能なボタンです:私はそれを1回クリックすると

a busy cat http://i.minus.com/ibfq5BgLjta0Lo.jpg

、取引のリストが一度に拡張され、リストの最後にもう一度クリックしてください。 2回または3回クリックすると、リスト全体が完全に表示されます。私はどのようにPythonをプログラミングコードのように多くクリックすると、貿易記録の全リストを取得できますか?

以下の質問もあります:通常、HTMLソースを読み、構文解析技術を使用して複雑なタグからテキスト情報を取得できます。しかし、ソースコードに行かずにマウスのウェブ全体のコンテンツを選択して "ctrl + c"を押すと、複雑なタグなしでブラウザに表示されるすべてのテキストが表示されます。私はそれが情報を取り出す別の方法かもしれないと思った。しかし、PythonだけがHTMLソースを読むことができたと思いますが、私は単純にWebの全内容を選択してコピーした後、タグなしでテキスト情報全体を含む長い文字列を取得するような方法はありますか?

ありがとうございます!

答えて

2

クリックすると、基本的にはが表示されます。X-Requested-With: XMLHttpRequestヘッダーが設定されています。 firefoxのlive http headerアドオンを使って見ることもできます。これは、ajaxリクエストが行われていることを意味します。だから、

、基本的に次の2つの選択肢があります。

1)URLパターンがmoreをクリックすると上にある観察し、自分のコードの中でそれらを使用します。

2)あなたはpython-spidermonkey moduleでintestedされているかもしれません。これはPythonからjavascriptを実行することを目的としています。

また、Seleniumを使用することもできます。これは、選択した言語から実際のWebブラウザを制御できるライブラリです。

+1

またはpywebkitgtkまたはpyphantomjsまたは多数のPythonスクリプトブラウザ。 –

1

Webkitの開発ツール(具体的にはネットワーク)を使用すると、クリックすると実際にhttp://www.forexfactory.com/flex.php?do=savestate&flexId=flex_explorer_tradeActivity&more=1が呼び出されます。もう一度クリックするとmore、次に "3"などの後に "2"が表示されます。

これらの応答を見ると、Webページに読み込まれる情報を含むJSONデータがいくつか取得されます。あなたの仕事は、完全なデータセットを得るために、この情報を(ウェブページからスクレイプされたデータの上に)解析することです。残念ながら、自分でビルドしない限り、実際にHTMLをもっと多くクリックした後に取得する方法は考えられません。

関連する問題