2016-09-20 55 views
2

我正在为nutch制作一个自定义分析插件并遇到问题。我想要在种子网址的特定区域中抓取所有网址。但nutch忽略外部链接,这些链接不会被抓取。外部链接没有抓取

例如:种子网址 - https://in.news.yahoo.com 它包含像timesofindia.com,thehindu.com等网站的链接,但这些链接不会被抓取。

我的nutch-site.xml中包含: -

<property> 
    <name>db.ignore.external.links</name> 
    <value>false</value> 
</property> 

和正则表达式的URL过滤器接受任何事情。(与正则表达式+)。 我想知道为什么nutch忽略了作为种子给出的url中的某些外部链接。请帮助

回答

2

试试这个,我发现这是一个解决办法:

  • 添加一些额外的代码片段到你的parsefilter。
  • 选择您希望使用Jsoup选择器元素进行爬网的链接。 例如,我选择特定div中的链接
  • 将此新的链接设置为您的解析结果,Nutch将接受此链接并开始抓取。

用于步骤2代码示例:

List<Outlink> outLinks=new ArrayList<Outlink>(); 
Outlink outLink; 
String link; 
Elements elements = document.select("div.show a[href]"); 
for (Element element : elements) { 
link=element.absUrl("href"); 
outLink=new Outlink(absoluteUrl,element.text()); 
outLinks.add(outLink); 
} 
Outlink[] newOutLinks = (Outlink[])outLinks.toArray(new Outlink[outLinks.size()]); 
+1

Thanks.It是有益:) – Sachin