![](/img/trans.png)
[英]Single Crawl script to Crawl website (Nutch) and Index results (Solr)
[英]How to crawl magnet links with Apache Nutch and Solr so that they're available in Solr query results?
我使自己熟悉使用Apache Nutch和Solr進行爬網,但是意識到,雖然Solr的HTTP和HTTPS鏈接在查詢結果中可用,但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 =瓮:btih:ETDW2XT7HJ2Y6B4Y5G2YSXGC5GWJPF6P上http://linuxtracker.org/?page=torrent-details&id= 24c76d5e7f3a758f0798e9b5895cc2e9ac9797cf 。
使用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。
短答案磁鐵鏈接不是“普通”鏈接,Nutch不支持開箱即用。
長答案:
更改的配置將在提取鏈接后應用,在這種情況下,如果使用的是parse-html
則parse插件會嘗試評估可能的出站鏈接是否為有效鏈接,這基本上只會創建一個java.net.URL
。
另一方面,根據javadocs的說法, java.net.URL
不支持磁力鏈接。
確保以下路徑的協議處理程序存在於搜索路徑中:
http, https, ftp, file, and jar
如果您使用的是parse-tika
則會發生類似的情況 。
一種選擇是讓您的自定義解析器為您處理此問題,請記住,在任何情況下,您都不希望跟隨(具有向外鏈接)磁鏈接,因為Nutch無法處理這些鏈接。
如果只想讓鏈接在Solr / ES中索引(用於搜索),則可以編寫自己的HtmlParseFilter
並將這些鏈接添加到例如單獨的字段中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.