3

特定のリンクを移動してコンテンツを抽出できる非常に初歩的なクローラーを構築しようとしています。ページ上のリンクをたどり、必要なコンテンツを読むために JSoup を使用しています。

ただし、サイトの 1 つで障害に遭遇しました。これは、ユーザーが自分のコメントを投稿できる一種のニュース ポータルです。これらのコメントを抽出する必要があります。ただし、コメントが 5 つを超える場合、それらは複数のページにまたがり、後続のページへのリンクは、(実際のリンクではなく) href の JavaScript コードによって作成されます。それは次のようなものです:

<a id="pager1_lnkPage2" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;pager1$lnkPage2&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, true))">2</a>

この JavaScript によって生成されたリンクをたどる方法がわかりません。これらのリンクによって参照されるページのデータを取得する方法はありますか (他のページをナビゲートしている間、URL は変更されないため、表面上は新しいリンクが作成されないように見えます)。

参考までに、そのようなページへのリンクをここに示します。複数のページをナビゲートするためのリンクは、ページの右下隅にあります。

これは、本編のあるページに iframe で埋め込まれています。

また、javax で ScriptEngine と呼ばれるインターフェースに出くわしましたが、ここで使用するほど十分に理解できませんでした。

ありがとう

4

1 に答える 1

1

私は jsoup を使ったことはありませんが、その説明 (HTML パーサーです) と、何らかの方法で JavaScript をそれに組み込もうとしているという事実から判断すると、仕事に間違ったツールを選択したことがわかります。

あなたの場合、私はむしろZombie.js (Node.js ベース) またはSeleniumを使用します。Java を使い続けたい場合は、後者を選択することをお勧めします (Selenium には Java ベースのプラグインがあります)。

于 2012-12-05T11:59:03.150 に答える