nutch如何修改regex-urlfilter.txt爬取符合条件的链接

Posted 星朝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nutch如何修改regex-urlfilter.txt爬取符合条件的链接相关的知识,希望对你有一定的参考价值。


例如我在爬取学生在线的时候,发现爬取不到特定的通知,例如《中粮福临门助学基金申请公告》,通过分析发现原来通知的链接被过滤掉了,下面对过滤url的配置文件regex-urlfilter.txt进行分析,以后如果需要修改可以根据自己的情况对该配置文件进行修改:

说明:配置文件中以“#”开头的行为注释,以“-" 开头的表示符合正则表达式就过滤掉,以“+”开头的表示符合正则表达式则保留。正则表达式中"^"表示字符串的开头,"$"表示字符串的结尾,"[]"表示集合。中文部分是我添加的注释

 

  1. # Licensed to the Apache Software Foundation (ASF) under one or more  
  2. # contributor license agreements.  See the NOTICE file distributed with  
  3. this work for additional information regarding copyright ownership.  
  4. # The ASF licenses this file to You under the Apache License, Version 2.0  
  5. # (the "License"); you may not use this file except in compliance with  
  6. # the License.  You may obtain a copy of the License at  
  7. #  
  8. #     http://www.apache.org/licenses/LICENSE-2.0  
  9. #  
  10. # Unless required by applicable law or agreed to in writing, software  
  11. # distributed under the License is distributed on an "AS IS" BASIS,  
  12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
  13. # See the License for the specific language governing permissions and  
  14. # limitations under the License.  
  15.   
  16.   
  17. # The default url filter.  
  18. # Better for whole-internet crawling.  
  19.   
  20. # Each non-comment, non-blank line contains a regular expression  
  21. # prefixed by ‘+‘ or ‘-‘.  The first matching pattern in the file  
  22. # determines whether a URL is included or ignored.  If no pattern  
  23. # matches, the URL is ignored.  
  24.   
  25. # skip file: ftp: and mailto: urls  
  26. #过滤掉file:ftp等不是html协议的链接  
  27. -^(file|ftp|mailto):  
  28.   
  29. # skip image and other suffixes we can‘t yet parse  
  30. #过滤掉图片等格式的链接  
  31. -\.(gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|jpeg|JPEG|bmp|BMP)$  
  32.   
  33. # skip URLs containing certain characters as probable queries, etc.  
  34. #-[?*[email protected]=] 过滤掉汗特殊字符的链接,因为要爬取更多的链接,所以修改过滤条件,使包含?=的链接不被过滤掉  
  35. -[*[email protected]]  
  36.   
  37. # skip URLs with slash-delimited segment that repeats 3+ times, to break loops  
  38. #过滤掉一些特殊格式的链接  
  39. -.*(/[^/]+)/[^/]+\1/[^/]+\1/  
  40.   
  41. # accept anything else  
  42. #接受所有的链接,这里可以做自己的修改,是的只接受自己规定类型的链接  

 原因解释:因为爬取的公告链接为(http://www.online.sdu.edu.cn/news/article.php?pid=636514943),链接中含有?和=字符,所以被过滤特殊字符的正则表达式过滤掉,通过修改regex-urlfilter.txt配置文件(如上),最终可以爬取这类公告的链接。

 

以上是关于nutch如何修改regex-urlfilter.txt爬取符合条件的链接的主要内容,如果未能解决你的问题,请参考以下文章

Nutch + Hbase

Nutch 1.x:如何使用 s3a 代替 HDFS?

如何在Java应用程序中使用Nutch API?

如何在以伪分布式模式安装的Hadoop中运行Nutch

nutch2.x在eclipse+windows环境下运行遇到的一些问题的解决方案

Java分布式爬虫Nutch教程——导入Nutch工程,执行完整爬取