我正在运行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像上面的第二个一样抓取网址?
我试过以下但没有运气:
+^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/
答案 0 :(得分:8)
根据http://wiki.apache.org/nutch/FAQ#What_happens_if_I_inject_urls_several_times.3F,您不能拥有多个网址(将被忽略)。如何将仅:
+^http://www.example.com/foo.cfm/(.+)*$
应该覆盖您的第一行:+^http://www.example.com/foo.cfm$
,或者,如果/
出现问题,请尝试:
+^http://www.example.com/foo.cfm//?(.+)*$
//?
应代表字符/
或