2

私は地元の新聞のアーカイブをクロールしようとしていますが、望ましい結果が得られています。すべてのページで同じであるホーム、ボタン、およびそれらのフッターなどの静的ボタンがクロールに含まれないようにクローラーをプログラムする方法はありますか?

これは、クロールされたデータを表示するために使用しているコードです

System.out.println(Jsoup.parse(html).body().text_mod());
4

2 に答える 2

3

あなたの問題には、一般的な解決策と特別な解決策の 2 つの解決策があります。

1 ジェネリック

Web サイトからコンテンツを取得するには、ボイラーパイプなどのツールを使用してボイラープレート コードを削除でき ます。これにより、ライブラリによってテキストが抽出されます。ただし、ボイラーパイプの内部で何が起こっているかを制御することはほとんどできません。

2 アドホック

Jsoup を使用して、ツリー内の不要なノードを削除できます。この目的のために、 Jsoup によって処理されたドキュメントを取得します。

Document doc = Jsoup.parse(html):

次に、Jsoup セレクターを使用して、ページから削除するノードを取得します。こちらのドキュメントを参照してください: Jsoup セレクター。ノードを選択したら、Element クラスの remove メソッドを使用します。

于 2013-02-14T08:37:19.920 に答える
1

shouldVisit メソッドはどうですか? URL パターンに基づいて条件を追加できます。次に例を示します。

    @Override
public boolean shouldVisit(WebURL url) {
    String href = url.getURL().toLowerCase();
    return (!href.contains("static/button/url/"));
}

それは私にとってはうまくいきます。

于 2013-03-08T10:25:18.313 に答える