3

URL を取得するために、php では curl を、Python では httplib2 を使用します。

ただし、ページを読み込んだ後に JavaScript (AJAX) を使用してデータを取得し、後でページの特定のセクションを上書きするだけのページもあります。

では、JavaScript を処理できるコマンド ライン ユーティリティはありますか?

私が言いたいことを知るには、monster.com にアクセスして、仕事を探してみてください。

その後、Ajax がジョブのリストを取得していることがわかります。したがって、キーワード検索に基づいて求人を取得したい場合は、求人のないページが表示されます。

しかし、ブラウザ経由で動作します。

4

6 に答える 6

0

これを処理する方法は2つあります。Webkitなどのフルブラウザベースのクライアントを使用してスクリーンスクレイパーを作成するか、実際のページに移動してAJAXリクエストが何を行っているかを確認し、直接リクエストします。もちろん、結果を解析する必要があります。あなたを助けるためにfirebugを使用してください。

この件に関する詳細については、この投稿を確認してください。賛成の回答は、テストツールを使用して実際のブラウザを駆動することを示唆しています。 Javascriptをサポートしてスクリーンスクレイピングするための優れたツールは何ですか?

于 2009-07-09T20:34:08.767 に答える
0

独自のユーティリティでHtmlUnitの機能を試してみてはいかがでしょうか?

HtmlUnit は「Java プログラム用の GUI レス ブラウザ」です。HTML ドキュメントをモデル化し、「通常の」ブラウザで行うのと同じように、ページの呼び出し、フォームへの入力、リンクのクリックなどを可能にする API を提供します。

かなり優れた JavaScript サポート (常に改善されています) があり、非常に複雑な AJAX ライブラリでも動作し、使用する構成に応じて Firefox または Internet Explorer のいずれかをシミュレートできます。

これは通常、テスト目的または Web サイトから情報を取得するために使用されます。

于 2009-07-10T02:46:36.173 に答える
0

FireBugを入手して、その Ajax リクエストの URL を確認してください。その後、その URL で curl を使用できます。

于 2009-07-09T20:32:28.160 に答える
0

Firefox のプラグインである LiveHttpHeaders を使用して、すべての URL の詳細を表示し、その URL で cURL を使用します。LiveHttpHeaders は、メソッドのタイプ (post または get) やヘッダー本体などのすべての情報を表示します。また、ヘッダーに post または get パラメーターも表示します。これが役立つと思います。

于 2009-07-20T05:45:17.993 に答える
0

env.jsは要素を処理できると思います<script>Rhino JavaScript インタープリターで実行され、独自の XMLHttpRequest オブジェクトがあるため、スクリプトが自動的に実行されない場合は、少なくともスクリプトを手動で実行できるはずです (すべての<script>タグを選択し、.js ファイルを取得して を呼び出します)。evalただし、信頼できないスクリプトの実行には注意してください。これらのスクリプトは任意の Java クラスを使用できるためです。

John Resig の最初のバージョン以来遊んでいないので、使い方についてはよくわかりませんが、Google グループにディスカッション グループがあります。

于 2009-07-09T21:11:25.710 に答える
0

PhantomJS http://phantomjs.orgを使用できます

以下のように使用できます。

var page=require("webpage");
page.open("http://monster.com",function(status){
  page.evaluate(function(){
    /* your javascript code here 
        $.ajax("....",function(result){


            phantom.exit(0);
           }); */
  });
});
于 2014-05-07T16:46:41.447 に答える