Nutch的正则表达式,urlfilter语法(Nutch regex-urlfilter synt

2019-07-05 08:13发布

我运行的Nutch诉1.6,它是正确抓取特定网站,但我似乎无法得到正确的语法为文件NUTCH_ROOT/conf/regex-urlfilter.txt

我想抓取该网站也有类似这样的URL:

http://www.example.com/foo.cfm

该网页上有符合下列模式的众多链接:

http://www.example.com/foo.cfm/Bar_-_Foo/Extra/EX/20817/ID=6976

我想爬匹配上面还有第二个例子是链接。 在我的regex-urlfilter.txt我有以下几点:

+^http://www.example.com/foo.cfm$
+^http://www.example.com/foo.cfm/(.+)*$

在Nutch的第一个匹配,正确抓取它,但似乎并没有回暖使用其他过滤器链接。 我怎样才能得到Nutch的抓取URL的像上面的第二个?

我已经试过,没有运气如下:

+^http://www.example.com/foo.cfm/(.+)*$
+^http://www.example.com/foo.cfm/(.)*$
+^http://www.example.com/foo.cfm/.+$
+^http://www.example.com/foo.cfm/(.*)*$

在我NUTCH_ROOT/urls/nutch ,我有:

http://www.example.com/foo.cfm/

Answer 1:

据http://wiki.apache.org/nutch/FAQ#What_happens_if_I_inject_urls_several_times.3F你不能有多个URL(它们将被忽略)。 怎么样放:

+^http://www.example.com/foo.cfm/(.+)*$

这应该包括你的第一行: +^http://www.example.com/foo.cfm$为好,或者,如果有与问题/ ,试试:

+^http://www.example.com/foo.cfm//?(.+)*$

//? 应该代表字符/



文章来源: Nutch regex-urlfilter syntax