如何 select 来自 nutch 中特定标签的数据
How to select data from specific tags in nutch
我是 Apache Nutch 的新手,我想知道是否可以抓取网页的 selected 区域。例如,select 一个特定的 div
并且仅抓取该 div
中的内容。任何帮助,将不胜感激。谢谢!
你必须写一个 plugin that will extend HtmlParseFilter 来实现你的目标。
我想您会自己做一些事情,比如解析 html 的特定部分,提取您想要的 URL 并将它们添加为外链。
HtmlParseFilter implementation:(下面的代码给出了总体思路)
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 页面和文本内容。可以fork/download修改代码
我是 Apache Nutch 的新手,我想知道是否可以抓取网页的 selected 区域。例如,select 一个特定的 div
并且仅抓取该 div
中的内容。任何帮助,将不胜感激。谢谢!
你必须写一个 plugin that will extend HtmlParseFilter 来实现你的目标。
我想您会自己做一些事情,比如解析 html 的特定部分,提取您想要的 URL 并将它们添加为外链。
HtmlParseFilter implementation:(下面的代码给出了总体思路)
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 页面和文本内容。可以fork/download修改代码