我对Nutch很新。我正在使用Nutch 2.3来抓取一个网站,在这里我只想抓取一些匹配特定模式的链接。据我们所知,我们必须使用regex-urlfilter.txt
..所以我在regex-urlfilter.txt文件中配置了类似下面的内容,但结果是0抓取的网址。
我要抓取的网址应符合以下模式:
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/
以下是我在 regex-urlfilter.txt 文件中的正则表达式模式
# accept anything else
+^http://abc.test.com/profiles/people/([a-z]*\.)/([0-20]*\.).html
我正在抓取时收到0个网址。我假设我在 urls.txt 文件或 regex-urlfilter.txt
中犯了一些错误请有人帮我正确配置
提前致谢..
答案 0 :(得分:0)
根据Nutch Tutorial,您需要对变量部分使用正则表达式,并且您正在这样做,但您的正则表达式需要一个小的修正。
必须转义正则表达式中的文字点.
。 ([a-z]*\.)/([0-20]*\.).html
表示小写英文字母,0或更多次出现,然后是文字.
,然后是文字/
,然后是0或更多0
s,{{1 }},1
s(2
),后跟文字[0-20]*
,然后是任意字符和.
文字字符串。
所以,你试图允许像
这样的字符串html
请参阅,您需要http://abc.test.com/profiles/people/./.^html
在最终.
之前。我相信情况并非如此。
所以,使用
/
请参阅demo