Nutch regex-urlfilter 不工作
Nutch regex-urlfilter is not working
我正在抓取一个有很多子域的网站。我想限制几个网址的抓取。
例如,我有一个网站 http://www.123.com and i have sub urls ends with http://.123.com. I want to avoid http://www.def.123.com and http://www.ghi.123.com 从抓取我如何添加过滤器。
目前我应用了下面的过滤器,但它正在抓取这两个受限制的网址
+^http://*.123.com
正则表达式开头的注释-urlfilter.txt 说:
The first matching pattern in the file determines whether a URL is included or ignored
因此,由于您的第一个正则表达式匹配,并且以 + 开头,因此将抓取该网站的所有网址。
要解决此问题,请先放置更具体(排除)的 URL,然后放置一般规则。
您可以使用负前瞻:
+^https?://(?!(www.def|www.ghi).123.com(/.*)?$).*.123.com(/.*)?
这将接受任何以 https?://.*.123.com
模式开头的 url,除了 https?://www.def.123.com
和 https?://www.ghi.123.com
.
试试这个
+^(?:https?:\/\/)?(?:www\.)?123\.[a-zA-Z0-9.\S]+$
-^(?:https?:\/\/)?(?:www\.)?def\.[a-zA-Z0-9.\S]+$
-^(?:https?:\/\/)?(?:www\.)?ghi\.[a-zA-Z0-9.\S]+$
顺序很重要试试下面的
-^(http|https)://.*.123.com
+^(http|https)://123.com/ 或 +.
我正在抓取一个有很多子域的网站。我想限制几个网址的抓取。 例如,我有一个网站 http://www.123.com and i have sub urls ends with http://.123.com. I want to avoid http://www.def.123.com and http://www.ghi.123.com 从抓取我如何添加过滤器。
目前我应用了下面的过滤器,但它正在抓取这两个受限制的网址
+^http://*.123.com
正则表达式开头的注释-urlfilter.txt 说:
The first matching pattern in the file determines whether a URL is included or ignored
因此,由于您的第一个正则表达式匹配,并且以 + 开头,因此将抓取该网站的所有网址。 要解决此问题,请先放置更具体(排除)的 URL,然后放置一般规则。
您可以使用负前瞻:
+^https?://(?!(www.def|www.ghi).123.com(/.*)?$).*.123.com(/.*)?
这将接受任何以 https?://.*.123.com
模式开头的 url,除了 https?://www.def.123.com
和 https?://www.ghi.123.com
.
试试这个
+^(?:https?:\/\/)?(?:www\.)?123\.[a-zA-Z0-9.\S]+$
-^(?:https?:\/\/)?(?:www\.)?def\.[a-zA-Z0-9.\S]+$
-^(?:https?:\/\/)?(?:www\.)?ghi\.[a-zA-Z0-9.\S]+$
顺序很重要试试下面的
-^(http|https)://.*.123.com
+^(http|https)://123.com/ 或 +.