1

Java を使用して Web からデータをクロールしたいのですが、ページの最後に到達するとページがデータをロードすることがわかりました。私は Web 開発者ではなく、スクロールがページの終わりに達したときにデータをロードするためにどのテクノロジーを使用するのかわかりません。

ヒントを教えてください。彼らはどの技術を使用しましたか? ブラウザを使いたくないときにデータを読むにはどうすればよいですか? ( urlConnection を使用して Java でコードを作成し、サイトからデータを読み取りました。

サイトは「https://www.healthtap.com/#topics/Women%27s%20health」のようなものです。

ありがとう。

4

1 に答える 1

0

Webクローラーボットの一般的な「問題」です...一部のページには、含まれているソースから動的に追加されたコンテンツが含まれています。このコンテンツは、ページの読み込み時に読み込むか、トリガーすることができます (例のように、下にスクロールすることによって)。ターゲット ページがダウンロードされてスクレイピングされるとき、ほとんどの場合、DOM 構造には外側に含まれるデータの html 要素が含まれません。

私がお勧めするのは、このデータのソース パスを特定することです。これは、DOM のスクリプトを注意深くチェックすることで実行できます。必要なすべての欠落データを含む二次情報源として彼を呼び出します。

編集:

リンクした例では、簡単です:

      - install firebug.
      - scroll down the page to check the script that fires the request.
      - now you can see the link and the vars that are used for dynamicly adding the content.

www.healthtap.com/#topics/Women%27s%20health:

動的応答リンク:

https://www.healthtap.com/topics/Women%27s%20health.json ? extended_categories=1&auth_token=false&per_page=8&page=7&per_page=8&auth_token=false&generate_token=true

ご覧のとおり、操作できるパラメーターがいくつかあります。

 1/ topics/ + the page firs value name + .json?
 2/ per page= num -> how much results to return
 3/ generate_token=true -> its a security value but just change it to false and it work fine....

これで、このリンクで遊んで、必要なすべてのデータをロードし、クロールしたメイン ページとマージできます。

テスト済み!

于 2013-03-22T18:14:00.063 に答える