2017-10-05 93 views
0

我讓自己熟悉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

目的是要有一個網站/域名上的所有磁鐵鏈接的列表來做一些事情。 –

回答

1

簡答磁鏈接不是「正常」的鏈接,並且不支持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')也不是很困難。 –