【发布时间】:2014-06-02 19:28:45
【问题描述】:
我正在使用一个网络爬虫(称为 Nutch),当我向其中输入一堆网址时,它会爬取网络。我设置了某些正则表达式过滤器来控制爬虫到特定域和特定过滤器。
# skip URLs containing a back slash
-[\\]
# skip URLS containing more than 6 levels
-^http://([a-zA-Z.-]+)/(?:[^/]+/){6,}.*$
# crawl only domain abc
+^http://www.abc.xx.yyy.zzz/pubs/([a-z]+)
问题:在特定域中,我的爬虫正在使用我不想要的所有分页和查询参数来爬取所有搜索表单 url。例如:
http://www.abc.xx.yyy.zzz/pubs/biblio_results.asp?Library=ABC&SubjectScope=keyword&SubjectMode=contains&SubjectText=abc_archive&URLs=yes&Order=year&SortOrder=DESC&Abstracts=no
我不确定如何设置正则表达式以让我的爬虫忽略任何此类 URL,例如上面的示例,其 URL 路径中有多个“&”符号。
顺便说一句,在构建搜索引擎时忽略此类 URL 是否是个好主意?
【问题讨论】: