如何使用ApacheNutch和Solr抓取磁铁链接,以便它们在Solr查询结果中可用?

如何使用ApacheNutch和Solr抓取磁铁链接,以便它们在Solr查询结果中可用?,solr,web-crawler,nutch,magnet-uri,Solr,Web Crawler,Nutch,Magnet Uri,我熟悉使用ApacheNutch和Solr进行爬行,但意识到虽然Solr中有HTTP和HTTPS链接,但内容字段中的查询结果却没有。我将conf/regex-urlfilter.txt调整为 也不明白为什么磁铁链接不应该包含在内容中。如您所见,我正在使用磁铁链接磁铁进行调查:?xt=urn:btih:ETDW2XT7HJ2Y6B4Y5G2YSXGC5GWJPF6P打开 使用bin/crawl进行爬网后,在pysolr中查询Solr时会出现如下磁铁链接: 我在Ubuntu 17.04上使用Apac

我熟悉使用ApacheNutch和Solr进行爬行,但意识到虽然Solr中有HTTP和HTTPS链接,但内容字段中的查询结果却没有。我将conf/regex-urlfilter.txt调整为

也不明白为什么磁铁链接不应该包含在内容中。如您所见,我正在使用磁铁链接磁铁进行调查:?xt=urn:btih:ETDW2XT7HJ2Y6B4Y5G2YSXGC5GWJPF6P打开

使用bin/crawl进行爬网后,在pysolr中查询Solr时会出现如下磁铁链接:


我在Ubuntu 17.04上使用Apache Nutch release-1.13-73-g9446b1e1和Solr 6.6.1。

简短回答磁铁链接不是普通链接,Nutch不支持开箱即用的链接

长答覆:

提取链接后,将应用您更改的get配置。在本例中,如果您使用的是parse html,则parse插件将尝试评估该配置是否只创建了一个java.net.URL

另一方面,根据javadocs,java.net.URL不支持开箱即用的磁铁链接:

以下协议的协议处理程序保证存在于搜索路径上:

 http, https, ftp, file, and jar
如果您使用的是parse tika

一种选择是让您的自定义解析器为您处理此问题,请记住,在任何情况下,您都不希望使用as大纲链接磁铁链接,因为Nutch将无法处理这些链接


如果您只想在Solr/ES中对链接进行索引以进行搜索,那么您可以编写自己的HTMLPasseFilter,并在单独的字段中添加这些链接。

您认为对磁铁链接进行爬网会产生什么结果?目的是在一个站点/域中列出所有磁铁链接,以便对其进行处理。谢谢。我想我会在源根目录出现之前等待,因为插件的构建过程应该比以前更简单。很高兴得到帮助,诚实地说,现在即使使用ant编写插件也不是很困难。
solr = pysolr.Solr(solr_core_url, timeout=10)
results = solr.search('*:*')
for result in results:
    print(result)
 http, https, ftp, file, and jar