我是Apache Nutch的新手,我想知道是否可以抓取网页的选定区域。例如,仅选择div
中的特定div
和抓取内容。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:2)
您必须撰写plugin,以HtmlParseFilter展开以实现目标。
我认为你自己会做一些事情,比如解析html的特定部分,提取你想要的URL并将它们作为外链添加。
HtmlParseFilter实现:(下面的代码给出了一般的想法)
ParseResult filter(Content content, ParseResult parseResult, HTMLMetaTags metaTags, DocumentFragment doc){
// get html content
String htmlContent = new String(content.getContent(), StandardCharsets.UTF_8);
// parse html using jsoup or any other library.
String url = content.getUrl();
Parse parse = parseResult.get(url);
ParseData parseData = parse.getData();
Outlink[] links = parseData.getOutlinks();
// modify/select only required outlinks
// return ParsePesult with modified outlinks
return parseResult;
}
希望这会有所帮助。
如果您不熟悉插件,我编写了一个简单的插件“nutch-fetch-page”,它使用HtmlParseFilter
界面将html页面和文本内容保存在本地驱动器上。您可以分叉/下载和修改代码。