分享

Nutch-2.2.1系列之八Nutch过滤URL实践

tntzbzc 2014-11-17 21:24:54 发表于 连载型 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 27412
问题导读

1.rgex-urlfilter.txt文件的作用是什么?
2.修改rgex-urlfilter.txt文件,修改最后一行为+^http://.*hadoop.*,产生了什么效果?









通过分析Nutch的配置文件Nutch-default.xml和阅读了部分源代码后,了解了Nutch的插件机制以及如何通过修改conf中的文件实现过滤抓取数据。默认情况下,实现URL过滤的类为RegexURLFilter,对应的过滤文件为regex-urlfilter.txt,在不修改该文件的情况下,Nutch可以过滤后缀以gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|CSS|sit|SIT|eps|EPS|wmf|WMF|zip|ZIP|ppt|PPT|mpg|MPG|xls|XLS|gz|GZ|rpm|RPM|tgz|TGZ|mov|MOV|exe|EXE|jpeg|JPEG|bmp|BMP|js|JS结尾的文件,过滤包含?*!@=字符的URL,过滤/SameSomething/重复出现三次的URL,而接受其他一切URL。现在以http://hadoop.apache.com为抓取的URL为例,分为默认抓取和只抓取包含hadoop的URL两种情况。
先看第一种情况,即对rgex-urlfilter.txt不做任何修改,代码及结果如下所示。从结果可以看到,总共抓取了38条记录。
  1. [hadoop@hadoop deploy]$ bin/crawl urls hadoop http://localhost:8983/solr/ 1
  2. hbase(main):012:0> scan 'hadoop_webpage', {COLUMNS=>'f:ts'}
  3. ROW                                      COLUMN+CELL                                                                                                         
  4. com.apachecon.eu.www:http/c/aceu2009/   column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1D1                                                   
  5. com.apachecon.us:http/c/acus2008/       column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1Ft                                                   
  6. com.cafepress.www:http/hadoop/          column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1Fw                                                   
  7. com.yahoo.developer:http/blogs/hadoop/2 column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV\x1D2                                                   
  8. 008/07/apache_hadoop_wins_terabyte_sort                                                                                                                     
  9. _benchmark.html                                                                                                                                             
  10. org.apache.avro:http/                   column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1Fw                                                   
  11. org.apache.cassandra:http/              column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1Fx                                                   
  12. org.apache.forrest:http/                column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV\x1F\xAC                                                
  13. org.apache.hadoop:http/                 column=f:ts, timestamp=1388471264808, value=\x00\x00\x01C\xE1\xD1\xB2\xFC                                          
  14. org.apache.hadoop:http/bylaws.html      column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1Fy                                                   
  15. org.apache.hadoop:http/docs/current/    column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV%\x06                                                   
  16. org.apache.hadoop:http/docs/r0.23.10/   column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1Fy                                                   
  17. org.apache.hadoop:http/docs/r1.2.1/     column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1Fz                                                   
  18. org.apache.hadoop:http/docs/r2.1.1-beta column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV%\x07                                                   
  19. /                                                                                                                                                           
  20. org.apache.hadoop:http/docs/r2.2.0/     column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1F{                                                   
  21. org.apache.hadoop:http/docs/stable/     column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV%\x07                                                   
  22. org.apache.hadoop:http/index.html       column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1F|                                                   
  23. org.apache.hadoop:http/index.pdf        column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV%\x08                                                   
  24. org.apache.hadoop:http/issue_tracking.h column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV%\x08                                                   
  25. tml                                                                                                                                                         
  26. org.apache.hadoop:http/mailing_lists.ht column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV%\x08                                                   
  27. ml                                                                                                                                                         
  28. org.apache.hadoop:http/privacy_policy.h column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV%\x09                                                   
  29. tml                                                                                                                                                         
  30. org.apache.hadoop:http/releases.html    column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1F|                                                   
  31. org.apache.hadoop:http/who.html         column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1F}                                                   
  32. org.apache.hbase:http/                  column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV%\x09                                                   
  33. org.apache.hive:http/                   column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1F~                                                   
  34. org.apache.incubator:http/ambari/       column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1F\x7F                                                
  35. org.apache.incubator:http/chukwa/       column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV%\x09                                                   
  36. org.apache.incubator:http/hama/         column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV%\x0A                                                   
  37. org.apache.mahout:http/                 column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1F\x7F                                                
  38. org.apache.pig:http/                    column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1F\x82                                                
  39. org.apache.wiki:http/hadoop             column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV%\x0A                                                   
  40. org.apache.wiki:http/hadoop/PoweredBy   column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV%\x0A                                                   
  41. org.apache.www:http/                    column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV%\x12                                                   
  42. org.apache.www:http/foundation/sponsors column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1F\x83                                                
  43. hip.html                                                                                                                                                   
  44. org.apache.www:http/foundation/thanks.h column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV%\x12                                                   
  45. tml                                                                                                                                                         
  46. org.apache.www:http/licenses/           column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1F\x83                                                
  47. org.apache.zookeeper:http/              column=f:ts, timestamp=1388471264814, value=\x00\x00\x01CGV\x1F\x85                                                
  48. org.sortbenchmark:http/                 column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV%\x13                                                   
  49. uk.co.guardian.www:http/technology/2011 column=f:ts, timestamp=1388471264808, value=\x00\x00\x01CGV%\x14                                                   
  50. /mar/25/media-guardian-innovation-award                                                                                                                     
  51. s-apache-hadoop                                                                                                                                             
  52. 38 row(s) in 0.2590 seconds
复制代码



第二种情况是修改rgex-urlfilter.txt文件,修改最后一行为+^http://.*hadoop.*,即只抓取包含hadoop的URL。抓取的结果如下所示,只包含20行,并且rowkey仅仅包含hadoop的RUL。

  1. [hadoop@hadoop deploy]$ bin/crawl urls hadoopWithFilter http://localhost:8983/solr/ 1
  2. hbase(main):016:0> scan 'hadoopWithFilter_webpage',{COLUMNS=>'f:ts'}
  3. ROW                                      COLUMN+CELL                                                                                                         
  4. com.cafepress.www:http/hadoop/          column=f:ts, timestamp=1388473239724, value=\x00\x00\x01CGtGl                                                      
  5. com.yahoo.developer:http/blogs/hadoop/2 column=f:ts, timestamp=1388473240778, value=\x00\x00\x01CGtG\x88                                                   
  6. 008/07/apache_hadoop_wins_terabyte_sort                                                                                                                     
  7. _benchmark.html                                                                                                                                             
  8. org.apache.hadoop:http/                 column=f:ts, timestamp=1388473240778, value=\x00\x00\x01C\xE1\xF0\xEB\xCB                                          
  9. org.apache.hadoop:http/bylaws.html      column=f:ts, timestamp=1388473239724, value=\x00\x00\x01CGtHv                                                      
  10. org.apache.hadoop:http/docs/current/    column=f:ts, timestamp=1388473240778, value=\x00\x00\x01CGtL\xA7                                                   
  11. org.apache.hadoop:http/docs/r0.23.10/   column=f:ts, timestamp=1388473239724, value=\x00\x00\x01CGtHw                                                      
  12. org.apache.hadoop:http/docs/r1.2.1/     column=f:ts, timestamp=1388473239724, value=\x00\x00\x01CGtHw                                                      
  13. org.apache.hadoop:http/docs/r2.1.1-beta column=f:ts, timestamp=1388473240778, value=\x00\x00\x01CGtL\xA8                                                   
  14. /                                                                                                                                                           
  15. org.apache.hadoop:http/docs/r2.2.0/     column=f:ts, timestamp=1388473239724, value=\x00\x00\x01CGtHx                                                      
  16. org.apache.hadoop:http/docs/stable/     column=f:ts, timestamp=1388473240778, value=\x00\x00\x01CGtL\xA8                                                   
  17. org.apache.hadoop:http/index.html       column=f:ts, timestamp=1388473239724, value=\x00\x00\x01CGtHx                                                      
  18. org.apache.hadoop:http/index.pdf        column=f:ts, timestamp=1388473240778, value=\x00\x00\x01CGtL\xA8                                                   
  19. org.apache.hadoop:http/issue_tracking.h column=f:ts, timestamp=1388473240778, value=\x00\x00\x01CGtL\xA9                                                   
  20. tml                                                                                                                                                         
  21. org.apache.hadoop:http/mailing_lists.ht column=f:ts, timestamp=1388473240778, value=\x00\x00\x01CGtL\xA9                                                   
  22. ml                                                                                                                                                         
  23. org.apache.hadoop:http/privacy_policy.h column=f:ts, timestamp=1388473240778, value=\x00\x00\x01CGtL\xA9                                                   
  24. tml                                                                                                                                                         
  25. org.apache.hadoop:http/releases.html    column=f:ts, timestamp=1388473239724, value=\x00\x00\x01CGtHy                                                      
  26. org.apache.hadoop:http/who.html         column=f:ts, timestamp=1388473239724, value=\x00\x00\x01CGtHz                                                      
  27. org.apache.wiki:http/hadoop             column=f:ts, timestamp=1388473240778, value=\x00\x00\x01CGtL\xAA                                                   
  28. org.apache.wiki:http/hadoop/PoweredBy   column=f:ts, timestamp=1388473240778, value=\x00\x00\x01CGtL\xAA                                                   
  29. uk.co.guardian.www:http/technology/2011 column=f:ts, timestamp=1388473240778, value=\x00\x00\x01CGtL\xAB                                                   
  30. /mar/25/media-guardian-innovation-award                                                                                                                     
  31. s-apache-hadoop                                                                                                                                             
  32. 20 row(s) in 0.3090 seconds
复制代码


通过上面的结果可以发现,通过修改rgex-urlfilter.txt文件中的正则表达式,可以实现定制抓取URL,仅仅抓取自己感兴趣的内容。



相关文章推荐





Nutch-2.2.1系列之一Nutch简介||及jar包问题解决
http://www.aboutyun.com/thread-10048-1-1.html

Nutch-2.2.1系列之二编译部署Nutch及常见问题
http://www.aboutyun.com/thread-10049-1-1.html

Nutch-2.2.1系列之三Nutch配置文件||Nutch与Hbase结合使用时常见问题
http://www.aboutyun.com/thread-10050-1-1.html

Nutch-2.2.1系列之四Nutch抓取数据在HBase中的存储
http://www.aboutyun.com/thread-10051-1-1.html


Nutch-2.2.1学习之五以伪分布模式运行Nutch
http://www.aboutyun.com/thread-10078-1-1.html

Nutch-2.2.1系列之六Nutch与Solr的集成
http://www.aboutyun.com/thread-10079-1-1.html

Nutch-2.2.1系列之七过滤抓取数据
http://www.aboutyun.com/thread-10080-1-1.html





没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条