2015-05-29 76 views
1

我對Nutch很新。我使用Nutch 2.3來抓取網站,在這裏我只想抓取一些與特定模式匹配的鏈接。正如我們所知,我們必須使用regex-urlfilter.txt ..所以我在我的regex-urlfilter.txt文件中配置了類似下面的內容,但結果是0抓取的URL。瞭解Nutch正則表達式

網址我想爬應符合以下模式:

http://abc.test.com/profiles/people/a/1.html 

在上面的網址,我們可以看到底/a/1.html。我只想在這部分應用正則表達式。字母'a' could be [a-z]和號碼'1' could be [1-20]。網址(http://abc.test.com/profiles/people)的其餘部分沒有變化。

希望我的要求是明確的,現在

下面是我自己寫的/bin/seed/urls.txt

http://abc.test.com/profiles/people/a/1.html 

而且我http://abc.test.com/

及以下嘗試是我正則表達式正則表達式-urlfilter.txt文件

# accept anything else 
+^http://abc.test.com/profiles/people/([a-z]*\.)/([0-20]*\.).html 

我在爬行時收到0個URL。我假設我在做一些錯誤或者在urls.txt文件或正則表達式,urlfilter.txt

會有人請幫助我在正確配置提前

謝謝..

回答

0

根據Nutch Tutorial,你需要對可變部分使用正則表達式,並且你做得很對,但是你的正則表達式需要一個小的修正。

正則表達式中的字面點.必須轉義。 ([a-z]*\.)/([0-20]*\.).html裝置小寫英文字母,0或多次出現,然後一個字面.,然後字面/,然後0以上0 S,1 S,2 S([0-20]*),然後由一個立即.,然後任何字符和html文字字符串

所以,你想允許串像

http://abc.test.com/profiles/people/./.^html 

看,你需要.是最後/之前。我相信情況並非如此。

因此,使用

+^http://abc\.test\.com/profiles/people/[a-zA-Z]+/([1-9]|1[0-9]|20)\.html 

demo

+0

它是否適合你? –