1

我正在使用 crawler4j 来爬取网站。当我访问一个页面时,我想获取所有链接的链接文本,而不仅仅是完整的 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 粘贴到抓取完成后可以访问的地方。例如,您可以将其设为您的爬虫类的私有成员并添加一个 getter。

于 2012-06-14T04:46:51.013 回答