Nutch:Crawl Broken Links&在Solr中索引它

时间:2013-12-11 07:28:07

标签: nutch

我的目的是找出HTML页面中有多少URL无效(404,500,HostNotFound)。所以在Nutch中有一个配置更改,我们可以通过这个配置更改网络爬虫爬过断开的链接并在solr中对其进行索引。

一旦所有断开的链接&在Solr中索引有效链接我可以检查无效的URL,并将其从我的HTML页面中删除。

任何帮助都将受到高度赞赏。

提前致谢。

2 个答案:

答案 0 :(得分:1)

您无需索引到solr以查找损坏的链接。 执行以下操作:

bin/nutch readdb <crawlFolder>/crawldb/ -dump myDump

它将为您提供404的链接:

Status: 3 (db_gone)
Metadata: _pst_: notfound(14)

浏览输出文件,您将找到所有损坏的链接。

示例:

  1. 输入网址文件“http://www.wikipedia.com/somethingUnreal http://en.wikipedia.org/wiki/NocontentPage
  2. 运行抓取命令:bin/nutch crawl urls.txt -depth 1
  3. 运行readdb命令:bin/nutch readdb crawl-20140214115539/crawldb/ -dump mydump
  4. 使用文本编辑器
  5. 打开输出文件“part-xxxxx”

    <强>结果:

    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)