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.,但爬虫需要它们。因此,您不能将它们排除在外。
在 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.,但爬虫需要它们。因此,您不能将它们排除在外。