java - 正则表达式过滤具有多个&符号 "&"的URL

标签 java regex nutch

我正在使用一个网络爬虫(称为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]+)

问题:在特定域内,我的抓取工具正在抓取所有搜索表单网址,其中包含我不想要的所有分页和查询参数。例子有:

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 是个好主意吗?

最佳答案

您在 Nutch 配置中的行应该是

-&.*&

这告诉 Nutch 跳过任何包含两个或多个 & 字符以及其间任意数量字符的内容。

忽略此类网址是否是个好主意,取决于搜索引擎的目的以及您正在搜索的域中网址的性质。如果不了解问题领域,就不可能回答问题的最后一句。

关于java - 正则表达式过滤具有多个&符号 "&"的URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24001821/

相关文章:

java - 从不同类型的文件中获取值并将其放入 arraylist

java - 如何获取用于编写自定义 Lombok 转换的 org.mangosdk.spi.ProviderFor 依赖项?

c# - 正则表达式如何匹配 2 个字段

hadoop - Hadoop HBase伪模式-RegionServer在一段时间后会断开连接

hadoop - Nutch + Solr-清洁需要很长时间才能完成

java Spring : unexpected token: *

java - 从其他文档追加子元素

java - Java 需要正则表达式来处理动态字符串值

javascript - 正则表达式中的 $0 和 $1

hadoop - 如何在分布式模式下运行Apache Nut