Nutch - 正则表达式仅包含以数字序列结尾的网址

Nutch - regex to include only urls which end in a numeric sequence

在 nutch 1.9 中,我正在尝试使用正则表达式-urlfilter.txt 将对 http://eprints.ulster.ac.uk 的学术研究存储库的抓取限制为仅 return 实际文章的 url,以数字序列结尾,例如:

http://eprints.ulster.ac.uk/143/ http://eprints.ulster.ac.uk/24122/

排除 url,例如http://eprints.ulster.ac.uk/view and http://eprints.ulster.ac.uk/cgi/latest/

我试过各种类似的组合:

-^http://eprints.ulster.ac.uk/[a-z]*/(*)/(*)
+^http://eprints.ulster.ac.uk/[0-9]{1,}/

但似乎没有任何效果,抓取总是return没有结果。

如有任何帮助,我们将不胜感激

排除的正确正则表达式应该是这样的:

-^http://eprints.ulster.ac.uk(/[a-z]+)+/?
  • [a-z]+:字母 a-z 出现一次或多次
  • (...)+: 括号中的部分出现一次或多次
  • /?: 末尾的可选斜杠

编辑:

我查看了您链接的网站。它的结构如下所示:

1. http://eprints.ulster.ac.uk
    |
    V
2. http://eprints.ulster.ac.uk/view/
    |
    V
3. http://eprints.ulster.ac.uk/view/year/
    |
    V
4. http://eprints.ulster.ac.uk/view/year/2015.html
    |
    V
5. http://eprints.ulster.ac.uk/31307/

所以 1. 是您的起点,5. 是您想要的文件。如果爬虫必须找到列表中的最后一个文件,它还必须获取文件 2.、3. 和 4.

我的猜测是,这正是您的问题。您想要排除文件 2. 和 3.,但爬虫需要它们。因此,您不能将它们排除在外。