私は脆弱性スキャナーで後で使用する目的で基本的なクローラーを実装しています。私は接続のためのjsoupを使用している/取得し、HTMLドキュメントの解析。jsoupを使ってサイトからページへのナビゲート可能なリンクを取得するには?
私は目的のサイト(www.example.com)のベース/ルートを手動で提供し、接続します。
...
Connection connection = Jsoup.connect(url).userAgent(USER_AGENT);
Document htmlDocument = connection.get();
this.htmlDocument = htmlDocument;
...
次に、ページのすべてのリンクを取得します。
この後、私はリンクをループし、サイトのすべてのページへのリンクを取得しようとします。
for (Element link : linksOnPage) {
this.links.add(link.absUrl("href"));
}
問題は次のとおりです。私が得るリンクによっては、新しいページへのリンクではなく、ページへのリンクさえないリンクもあります。一例として、のようになったリンク:
のmailto:私はいくつかの助け聖霊降臨祭が必要なもの[email protected]
リンクをフィルタリングして、同じルート/ベースサイトの新しいページへのリンクだけを取得します。
チェックリンクは、ドメイン名で始まる場合: 'link.startsWith( "http://www.ics.uci.edu/")' –
要素をjsoupのオブジェクトには "startsWith"のようなメソッドはなく、ベースドメイン(/pages.page2.html)で始まらないリンクはjsを使って同じサイトに移動している可能性があります。 – Vlad
'Element link'オブジェクトのString URLを取得します。そして、 'url'でstartsWithを呼び出します。ナビゲーションにjsを使用するリンクには、共通のプロパティが必要です。それらによってフィルタリングすることができます –