本书共16章,详细介绍爬虫的基础知识、编写简单定向爬虫和使用Scrapy爬虫框架。第1~3章介绍爬虫的基础知识和网页解析基础;第4~8章用实例演示编写定向爬虫、模拟登录、应对反爬虫和爬取动态网页等;第9章介绍Scrapy基础知识;第10、第11章讲解两个最常用的Scrapy爬虫类;第12、第13章讲解Scrapy应对反爬虫、向网站提交数据和登录网站的方法;第14章用实例演示存储数据到数据库;第15章简单讲解爬虫去重、分布式爬虫编写和爬虫部署;第16章为综合实例,并且简单介绍爬取数据的分析。本书运用大量实例为读者演示编写爬虫的技巧,每一章都包含本章小结及要求,以帮助读者巩固所学内容。
本书面向对爬虫技术感兴趣的读者,介绍使用Python语言编写爬虫的各种技巧和方法。对希望深入学习Python编程的初学者,本书也很适合作为进阶读物。
爬虫技术是一门非常有趣、有用、易学、易令人产生成就感的技术。人们利用爬虫技术可以下载感兴趣的图片、小说,可以自动化地完成很多需要人工操作的事情,如定时抢购某件商品。对企业来讲,爬虫的作用显得更加重要,很多公司依赖于爬虫技术获取公开数据,为企业发展提供服务。在招聘网站上,爬虫工程师的薪酬非常高。
爬虫技术学起来容易上手,相信各位读者看完第4章的基础爬虫实例,就可以编程爬取很多网站,这对建立信心、激发学习兴趣非常关键,从这个角度看,爬虫技术也非常适合作为学习编程语言的进阶内容。
虽然爬虫技术易学、有用、有趣,但要真正系统地掌握爬虫技术,能够独立地解决数据获取过程中遇到的难题,还需要深入、系统地掌握爬虫知识。经常有读者觉得爬虫教学用例繁杂,技巧介绍不明确,学习起来很难掌握;或者内容比较片面,难以把学习的例子应用到其他网页爬取中。针对以上问题,本书在编写过程中,特别注重两点:一是简单易学,二是系统深入。本书为了简单明了地向读者介绍编写爬虫的技巧,着重选择那些既能体现编写技巧,页面又相对干净的例子;为了让读者能够比较爬虫框架与手写爬虫的不同,本书还多次使用两种方法爬取相同的网站,这些都非常有利于读者学习。
本书不仅精挑细选爬取实例,内容组织上也注重深入性和全面性,希望尽量为读者演示各种爬取技巧和方法。从手写爬虫到爬虫框架,从多层页面爬取到图片下载,从应对反爬虫到模拟登录,从各种翻页技巧到查找网页元素,甚至爬虫去重技术和分布式爬虫部署,书中都有详细的演示和讲解,相信读者在读完本书后,能够系统地掌握使用Python编写爬虫的技术。
为了使代码讲解内容易看易懂,本书直接提供了全部的代码,读者可以参考书中的代码编写爬虫,但是要注意,商业网站的更新速度很快,可能在你看到本书的时候,网站已经做了或大或小的改版,如果直接照抄书中代码,就会产生一些问题。因此,读者应该重点学习编写爬虫的技巧和方法,相信在仔细阅读完本书后,读者完全可以应对各种各样的网页改版问题。此外,本书为了让代码更易读,在代码中用到的如户型、楼层、小区等变量使用了拼音命名,这样处理的优点是可读性较好,但是在面试或公司生产环境中编写代码,还是应该尽量使用英文作为变量名称。
本书提供了配套讲解视频,读者扫描书中二维码即可免费观看,也可到网易云课堂搜索“Python爬虫零基础入门到进阶实战”,观看本书配套视频。
由于编者水平有限,加上爬虫技术本身发展迅速,书中难免有不足和不当之处,恳请读者批评、指正,在此表示衷心感谢。
编者
2018年3月
在大数据时代,人类社会的数据正以前所未有的速度增长。数据蕴含着巨大的价值,无论是对个人工作、生活,还是对企业未来的发展和创新商业模式,都有着很大的帮助。充分挖掘数据潜在价值,能帮助人们找到更合适的合作对象、更便宜的生活用品,也能帮助企业找到更好的细分市场,有针对性地为企业日后的发展提供数据支撑。数据让人们更好地掌握市场动向,更好地应对市场,产生新的合理的决策。