我的目的是找出HTML页面中有多少URL无效(404,500,HostNotFound)。所以在Nutch中有一个配置更改,我们可以通过这个配置更改网络爬虫爬过断开的链接并在solr中对其进行索引。
一旦所有断开的链接&在Solr中索引有效链接我可以检查无效的URL,并将其从我的HTML页面中删除。
任何帮助都将受到高度赞赏。
提前致谢。
答案 0 :(得分:1)
您无需索引到solr以查找损坏的链接。 执行以下操作:
bin/nutch readdb <crawlFolder>/crawldb/ -dump myDump
它将为您提供404的链接:
Status: 3 (db_gone) Metadata: _pst_: notfound(14)
浏览输出文件,您将找到所有损坏的链接。
示例:强>
bin/nutch crawl urls.txt -depth 1
bin/nutch readdb crawl-20140214115539/crawldb/ -dump mydump
<强>结果:强>
http://en.wikipedia.org/wiki/NocontentPage Version: 7
Status: 1 (db_unfetched)
...
Metadata: _pst_: exception(16), lastModified=0: Http code=503, url=http://en.wikipedia.org/wiki/NocontentPage
http://www.wikipedia.com/somethingUnreal Version: 7
Status: 5 (db_redir_perm)
...
Metadata: Content-Type: text/html_pst_: moved(12), lastModified=0: http://www.wikipedia.org/somethingUnreal
答案 1 :(得分:0)
此命令将为您提供仅损坏链接的转储:
bin/nutch readdb <crawlFolder>/crawldb/ -dump myDump -status db_gone
请记住在转储中排除带有以下标记的网址,因为它是根据robots.txt
生成的:
Metadata:
_pst_=robots_denied(18)