网络爬虫三大特性

(1) 传统爬虫,像nutch、hetriex之类的,以爬取简单页面为好,即没有复杂请求的页面。但随着web2.0的兴起,越来越多的网站采用很多动态交互技术如ajax之类的来提升用户体验、需用户登陆才可访问的页面等,它们就无能为力了,或者说需要二次开发的开发成本太高,很多人放弃用它们。

(2) 定制爬虫,针对一些大数据平台,如微博、电商、点评网之类的,页面交互复杂、用户登陆后方可访问,往往是需要自定义定制开发一些爬虫项目,如专门针对微博的微博爬虫,针对大众点评网的定制爬虫,针对豆辩书评的评论爬虫,都属于典型的定制爬虫,其难度要大于传统爬虫,需要相应的定制分析工具与能力,并且要具备很扎实的程序设计功底,优化效率,克服验证码、拒绝服务等反爬措施,方可做出高效的该类爬虫。现在主流依然是基于httpclient+jsoup来搞定网络下载与页面解析。

(3) 新型爬虫,结合一些成熟的第三方工具,如c/c++实现的webkit、htmlunit、phantomjs、casper等工具,其共同点即最大限度的去模拟人为操作浏览器的方式去解决用(1)(2)所不易解决的问题,如模拟登陆、复杂参数的获取、复杂页面交互等问题。往往采用如上的工具可以轻松搞定这些问题,其最大的缺点是由于基于真实浏览器的操作,故效率比较低,所以往往需要和httpclient相结合,才能达到高效实用的目的。基于phantomjs做的百度元搜索抓取也证明了这一点,下一步可以结合它去完成微博类爬虫的模拟登陆获取cookies部分,之后采用httpclient+jsoup解决海量数据的抓取,是非常好的微博爬虫解决方案。

你可能感兴趣的:(技术)