【问题标题】:Apache Nutch 2.1 - How get complete source codeApache Nutch 2.1 - 如何获得完整的源代码
【发布时间】:2024-01-24 08:13:01
【问题描述】:
我正在尝试编写自己的 Nutch 插件来抓取网页。问题是我需要确定是否有一些特殊标签,例如在网页上。官方文档中有一些说明可以使用 Document.getElementsByTagName("foo") 但这对我不起作用。你有什么想法吗?
我的第二个问题是,如果我在上面识别了标签,我想从这个网页中获取一些其他标签,其中标签被识别...有没有办法存储在某个时刻被抓取的网页的完整源代码?
谢谢,简。
【问题讨论】:
标签:
apache
tags
nutch
web-crawler
【解决方案1】:
如果您想根据 HTML 标签提取内容,可以查看 xpath-filter 插件:http://www.atlantbh.com/precise-data-extraction-with-apache-nutch/
您可以编写一个 xpath 查询并在插件中配置它以提取您需要的信息。
另一种选择是编写一个插件(就像您现在所做的那样)并使用 HTML/XML 解析器来获取信息。
当我需要从特定的 div 中提取一些内容时,这是我所做的:
@Override
public NutchDocument filter(NutchDocument doc, Parse parse, Text url, CrawlDatum datum, Inlinks inlinks) throws IndexingException {
//LOG.info("filter init: ");
Metadata metadata = parse.getData().getParseMeta();
String fullContent = metadata.get("fullcontent");
Document document = Jsoup.parse(fullContent);
Element contentwrapper = document.select("div#content").first();
//LOG.info("fullcontent");
//LOG.info(contentwrapper);
// Add field
doc.add("contentwrapper", contentwrapper.text());
return doc;
}