0

Python の Beautiful Soup を使用して HTML をスクレイピングする基本については知っています。ただし、このサッカー統計ページでは、AJAX 呼び出しを行って、プレーヤーがプレーした分に関するデータを取得します。(firebug を使用してネットワーク呼び出しを特定しました)。

私の質問: Python を使用してこの情報を「スクレイピング」することは可能ですか? どのようなツールが必要で、HTML 以外に知っておくべきことは何ですか? (私は現在、JavaScript と AJAX について調べています)。

この具体的ではない質問で申し訳ありませんが、存在するかどうかわからないツールについて Google で検索する方法さえ知りません。

Selenium更新: 数日後、 Python と組み合わせて使用​​するソリューションを思いつきましたPhantomJS。私は基本的Seleniumに、各リンクにアクセスし、ページがロードされるのを待ってから、情報をスクレイピングしていました。PhantomJSのヘッドレス Web ドライバとして機能しSeleniumます。

モッズがこれを閉じたい理由は理解できますが、ここで人々が私に与えたアドバイスは、彼らが私を正しい方向に導いてくれたので非常に役に立ちました. 私の質問は、どのツールが最適かということではなく、Python でこれを行う方法についての質問でした。

4

2 に答える 2

5

Python を使用する必要はなく、多くの場合うまくいきません。最善の方法は、適切なブラウザーを実行し、javascript を使用してすべてのスクレイピングを行うことです。これは、DOM 全体にアクセスでき、イベントにバインドすることもできるためです。

スクリプトをサポートする優れたヘッドレス ブラウザはたくさんありますが、私のお気に入りはPhantomJSです。これを使用して、Web ページを読み込んでスクレイピングしたり、画像として保存したりできます。

var page = require('webpage').create();
page.open('http://github.com/', function () {
    page.render('github.png');
    phantom.exit();
});

しかし、pjscrape など、PhantomJS上に構築されたスクレイピング フレームワークがあります。

于 2013-11-02T04:31:18.457 に答える
1

Python を使用して AJAX 情報をクロールする必要がある場合は、ghost.pyプロジェクトを試すことができます。ghost.pyは、PyQt Webkit を使用した Python の Webkit Web クライアントです。関連する js コードを実行すると、AJAX 情報を取得できます。

とにかく、js に精通している場合は、PhantomJS を選択することをお勧めします。私の答えが役立つことを願っています。

于 2013-11-02T05:29:58.373 に答える