2016-09-20 78 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