1

私はクローラー4jを使用してWebサイトをクロールしています。ページにアクセスしたときに、完全な URL だけでなく、すべてのリンクのリンク テキストを取得したいと考えています。これは可能ですか?

前もって感謝します。

4

1 に答える 1

1

WebCrawler から派生したクラスで、ページのコンテンツを取得し、正規表現を適用します。

Map<String, String> urlLinkText = new HashMap<String, String>();
String content = new String(page.getContentData(), page.getContentCharset());
Pattern pattern = Pattern.compile("<a[^>]*href=\"([^\"]*)\"[^>]*>([^<]*)</a[^>]*>", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
    urlLinkText.put(matcher.group(1), matcher.group(2));
}

次に、クロールが完了したらアクセスできる場所に urlLinkText を貼り付けます。たとえば、クローラー クラスのプライベート メンバーにして、ゲッターを追加することができます。

于 2012-06-14T04:46:51.013 に答える