1

jsoupとjavaの組み合わせを使用して、Webサイトのコンテンツの一部をクロールしようとしました。関連する詳細をデータベースに保存し、同じアクティビティを毎日実行します。

しかし、これが取引です。ブラウザでWebサイトを開くと、HTMLがレンダリングされます(すべての要素タグが表示されます)。私がそれをテストするときのjavascript部分は、うまく機能します(正しいデータを抽出するために使用することになっている部分)。

しかし、(Javaクラスからの)jsoupを使用して解析/取得を行うと、解析のために最初のWebサイトのみがダウンロードされます。つまり、Webサイトには動的な部分がいくつかあり、そのデータを取得したいのですが、取得後にレンダリングされるため、Webサイトで非同期にjsoupでデータをキャプチャできません。

誰かがこれを回避する方法を知っていますか?適切なツールセットを使用していますか?より経験豊富な方、アドバイスをお願いします。

4

1 に答える 1

4

クロールしているWebサイトが、すべてのコンテンツを表示するためにこのリストの一部を要求しているかどうかを事前に確認する必要があります。

  • ログイン/パスワードによる認証
  • HTTPヘッダーでのある種のセッション検証
  • クッキー
  • すべてのコンテンツをロードするためのある種の時間遅延(サイトはJavascriptライブラリ、CSS、および非同期データで大量にこれを必要とする場合があります)。
  • 特定のユーザーエージェントブラウザ
  • たとえば、企業のネットワークセキュリティ構成内にいる場合のプロキシパスワード。

このリストに何かが必要な場合は、jsoup.connect()でパラメーターを提供してそのデータを管理できます。公式ドキュメントを参照してください。

http://jsoup.org/cookbook/input/load-document-from-url

于 2012-07-02T15:06:58.917 に答える