2017-03-13 18 views
0

私はちょうどPythonに慣れており、主にBeautifulSoupを使ってウェブからスポーツデータをスクラップしています。私はJavaScriptが生成するPGAのウェブサイト上のテーブルを使って問題にぶつかりました。私が働いている特定のウェブサイトのコンテキストで誰かが私を歩いてくれることを期待していました。ここにサンプルリンク "http://www.pgatour.com/content/pgatour/players/player.29745.tyler-aldridge.html/statistics"があり、テーブルはすべてのプレーヤ統計テーブルです。ありがとう!PGAウェブサイトのJavaScriptテーブルからのPythonスクラップ

+0

ヘッドレスブラウザの代わりに 'selenium'を使用することができます(javascriptを実行してからHTMLを解析することができます)、またはJavaScriptが使用しているAPIを試すことができます。 –

答えて

1

ウェブページがJavaScriptを使用してコンテンツを構築したり取得したりすると、ウェブからHTMLをダウンロードするだけのツールが不足しています。より完全にウェブブラウザを模倣し、JavaScriptを解釈するものが必要です。換言すれば、いわゆるヘッドレスブラウザである。そこにはいくつかのものがありますが、Pythonとの統合が良いものもあります。あなたはPhantomJSまたはSeleniumを検索して旅を始めることができます。あなたが選んだツールを選択したら、ブラウザが静的ページのBeautifulSoupと同じようにDOMをブラウズし、ブラウズしてDOMをブラウズできるようにすることができます。

しかし、私はブラウザのデバッガの[ネットワーク]タブを最初に見ていきます。場合によっては、実際にサーバーからテーブルデータを取得しているGETを特定することができます。この場合は、複雑な技術を採用するよりも、自分でデータをrequestsなどで簡単にGETする方が簡単な場合があります。また、あなたが必要とする情報を普通のJSONで入手すると、それはさらに簡単に使用できるようになります。 PGAサイトでは、GETに何百ものリソースを構築していますが、それらをブラウズするにはまだまだ良い取引になります。

+0

これは興味深いものですが、私は他のサイトで簡単に調べてみましたが、何の牽引力も得られませんでした。それは、このインスタンスに行く方法かもしれないようですが、ちょうど周りを掘ると私はそれを把握することができるかどうかを確認する必要があります。 –

+1

JSONフィードを把握し終えました。再度、感謝します! –

0

ページ内でJavaScriptコードを解析して実行するには、JavaScriptエンジンが必要です。あなた

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

http://phantomjs.org/

http://zombie.labnotes.org/

http://github.com/ryanpetrello/python-zombie

http://jeanphix.me/Ghost.py/

http://webscraping.com/blog/Scraping-JavaScript-webpages-with-webkit/

助けることができるヘッドレスブラウザの束があります。

また、これを使用することを検討してください:

http://www.seleniumhq.org/docs/03_webdriver.jsp

セレン-webdriverを自動化のために、各ブラウザのネイティブサポートを使用してブラウザへの直接呼び出しを行います。これらのダイレクトコールがどのように行われ、サポートされる機能は使用しているブラウザによって異なります。各「ブラウザドライバ」に関する情報は、この章の後半で説明します。

Selenium-RCに精通している人にとって、これはあなたが慣れ親しんだものとはかなり異なっています。 Selenium-RCはサポートされているブラウザごとに同じ方法で動作しました。ブラウザがロードされたときにブラウザにjavascript関数が挿入され、javascriptを使用してブラウザ内でAUTが実行されました。 WebDriverはこの手法を使用しません。再び、ブラウザの内蔵オートメーションサポートを使用してブラウザを直接駆動します。

関連する問題