我正在运行 Nutch v. 1.6 并且它正在正确地抓取特定站点,但我似乎无法获得文件 NUTCH_ROOT/conf/regex-urlfilter.txt 的正确语法。

我要抓取的网站有一个类似这样的网址:

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/

最佳答案

根据 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//?(.+)*$

其中 //? 应代表字符 /

关于regex - Nutch regex-urlfilter 语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13884249/

10-13 04:53