我自己熟悉Apache Nutch和Solr的爬行,但意识到虽然HTTP和HTTPS链接在Solr查询结果中可用content
字段磁链接不是。我将conf/regex-urlfilter.txt
调整为
-^(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.
#-[?*!@=]
# 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:http://linuxtracker.org/?page=torrent-details&id=24c76d5e7f3a758f0798e9b5895cc2e9ac9797cf上的ETDW2XT7HJ2Y6B4Y5G2YSXGC5GWJPF6P。
在使用bin/crawl
进行抓取之后,在pysolr
中按照以下方式查询Solr时会出现磁链接:
solr = pysolr.Solr(solr_core_url, timeout=10)
results = solr.search('*:*')
for result in results:
print(result)
我在Ubuntu 17.04上使用Apache Nutch发行版1.13-73-g9446b1e1和Solr 6.6.1。
答案 0 :(得分:1)
短回答磁力链接不是“正常”链接,并且Nutch不支持开箱即用。
答案很长:
您提交的配置会在提取链接后应用,在这种情况下,如果您使用parse-html
解析插件尝试评估possible outlink is a valid link这是否基本上只创建了一个java.net.URL
。
java.net.URL
根据javadocs不支持开箱即用的磁力链接:
以下协议的协议处理程序保证存在于搜索路径中:
http, https, ftp, file, and jar
如果您正在使用parse-tika
something similar is happening。
一个选项可能是让您的自定义解析器为您处理此问题,请记住,在任何情况下,您都不希望跟随(具有外链)磁链,因为Nutch无法处理这些链接。
如果您只想在Solr / ES(用于搜索)中编制索引,那么您可以编写自己的HtmlParseFilter
并在分隔的字段中添加这些链接。