[zt]介绍一本搜索引擎爬虫方面的好书

这学期去图书馆借书,无意间看到一本书《网络机器人Java编程指南》。看了下感觉如获至宝。
市面上讲爬虫的书可以说是没有,基本上只有在搜索引擎类的书里有提到,而且只是讲个思想,没有可以用的代码。
而《网络机器人Java编程指南》是彻头彻尾讲解web爬虫的书籍,2002年出版的,目前已绝版。此书可说是非常珍贵
这是china-pub的链接http://www.china-pub.com/6565




进了作者Jeff Heaton的博客http://www.jeffheaton.com/,下到了源代码,作者一直在更新,所以源代码可以在JDK6.0上正常运行。速度很快。
相比如其他几款开源爬虫,本书的bot程序无疑更加简单,灵活,快速。


heritrix太复杂,设计的比较乱。当时自己配置了很久。
nutch自己的定制性不够好,url以二进制形式保存,管理起来很不方便。


书中的bot通过实现IWorkloadStorable接口的类来管理url链接,书中也给出了两个实例SpiderSQLWorkload和SpiderInternalWorkload,一个在数据库中管理url,另一个在内存中管理url。
另外书中的爬虫设计上也更好,自己画了张类图




很佩服作者,那时还没有HTML Parsers,所以作者自己写了个实现。如果现在自己用的话,可以做个小小的修改,用更好的开源html解析工具。。
另外书中也提到了基于表单、https、Cookies的爬虫,大开眼界。以前自己也写过很多爬虫,但在设计中总是缺少扩展性。
书中的bot程序也可以放在Hadoop运行,变成更加强大的分布式爬虫。比如:基于ProActive的分布式并行Web Spider的设计与实现
看这本书的时候也发现自己学的网络知识终于派上了用场,多线程也显得很重要,需要有更多的考虑,而不是一味的run。
本书更像是通过编写网络爬虫来提高自己的编程技术和相关知识,不管是不是搜索方面的开发者,都值得一读。

原文地址:https://www.cnblogs.com/nbalive2001/p/2793981.html