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

问题描述:

我让自己熟悉Apache Nutch和Solr的抓取,但是意识到尽管HTTP和HTTPS链接可用于Solr查询结果中,但content字段磁链接不是。我调整conf/regex-urlfilter.txt如何使用Apache Nutch和Solr抓取磁链接,以便它们在Solr查询结果中可用?

-^(file|ftp|mailto): 

# skip image and other suffixes we can't yet parse 
# for a more extensive coverage use the urlfilter-suffix plugin 
-\.(gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|CSS|sit|SIT|eps|EPS|wmf|WMF|zip|ZIP|ppt|PPT|mpg|MPG|xls|XLS|gz|GZ|rpm|RPM|tgz|TGZ|mov|MOV|exe|EXE|jpeg|JPEG|bmp|BMP|js|JS)$ 

# skip URLs containing certain characters as probable queries, etc. 
#-[?*[email protected]=] 

# skip URLs with slash-delimited segment that repeats 3+ times, to break loops 
-.*(/[^/]+)/[^/]+\1/[^/]+\1/ 

# for linuxtracker.org 
+^https?://*linuxtracker.org/(.+)*$ 
#+^magnet:\?xt=(.+)*$ 
    # causes magnet links to be ignored/not appear in content field 
+^magnet:*$ 

# reject anything else 
-. 

,不明白为什么磁铁链接不应该包括内部content。如您所见,我正在使用http://linuxtracker.org进行调查,例如,有磁铁链接磁铁:?xt = urn:btih:ETDW2XT7HJ2Y6B4Y5G2YSXGC5GWJPF6P on http://linuxtracker.org/?page=torrent-details&id=24c76d5e7f3a758f0798e9b5895cc2e9ac9797cf

pysolr查询Solr的时候如下与bin/crawl这儿有磁铁链接爬行后:

solr = pysolr.Solr(solr_core_url, timeout=10) 
results = solr.search('*:*') 
for result in results: 
    print(result) 

我使用Apache Nutch的释放-1.13-73-g9446b1e1在Ubuntu 17.04和Solr 6.6.1。

+0

你期望爬行磁链接有什么结果? – MatsLindh

+0

目的是要有一个网站/域名上的所有磁铁链接的列表来做一些事情。 –

简答磁链接不是“正常”的链接,并且不支持Nutch开箱即用。

龙答:

,你已经改变了链接后应用获取的配置被提取,在这种情况下,如果你使用parse-html解析插件试图评估如果possible outlink is a valid link这基本上只是创建了一个java.net.URL

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

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

http, https, ftp, file, and jar 

如果您使用parse-tikasomething similar is happening

一种选择可能是有一个为您处理此自定的解析器,请记住,在任何情况下,你不会想要跟随(具有作为对外连结)磁铁链接,因为Nutch的就不能处理这些链接。

如果你只是想在Solr的/ ES(搜索)索引的链接,那么你可以编写自己的HtmlParseFilter,并添加这些链接在分离领域的实例。

+0

谢谢。我想我会在源代码根目录[迁移到maven]之前等待(https://issues.apache.org/jira/browse/NUTCH-2292),因为插件的构建过程应该比[与蚂蚁](https://wiki.apache.org/nutch/WritingPluginExample-1.2)。 –

+1

很高兴帮助,现在诚实地写一个插件(即使用'ant')也不是很困难。 –