本书从实战角度系统论述了Python 爬虫技术的核心知识,并通过大量的真实项目帮助读者深入掌握Python 爬虫技术及其实现。本书提供了大量实战案例,演绎采用各种技术编写Python 爬虫的方式。读者可以任意组合使用这些技术,完成非常复杂的爬虫应用。本书共20 章,分为五篇。第一篇:基础知识(第1~2 章),主要包括Python 编程环境的搭建、IDE 的安装和使用、HTTP 的基础知识、网页基础(HTML、CSS、JavaScript)、爬虫的基本原理、Session、Cookie。第二篇:网络库(第3~5 章),主要包括网络库urllib、urllib3 和requests 的核心使用方法,例如,发送HTTP 请求、处理超时、设置HTTP 请求头、处理中文字符、搭建和使用代理、解析链接、Robots 协议等。第三篇:解析库(第6~9 章),主要包括3 个常用解析库(lxml、Beautiful Soup 和pyquery)的使用方法,同时介绍了多种用于分析HTML 代码的技术,例如,正则表达式、XPath、CSS 选择器、方法选择器等。第四篇:数据存储(第10~11 章),主要包括Python 中数据存储的解决方案,如文件存储和SQLite 数据库。第五篇:爬虫高级应用(第12~20 章),主要包括Python 爬虫的一些高级技术,如抓取异步数据、Selenium、Splash、抓取移动App 数据、Appium、多线程爬虫、爬虫框架Scrapy、通过OpenCV 技术识别验证码;最后给出一个综合的实战案例,该案例综合了Python 爬虫、数据存储、PyQt、多线程、数据可视化、Web 等多种技术实现一个可视化爬虫。
大家都知道Python语言现在非常火爆。但Python语言就和英语一样,如果只会Python,就相当于只能用英语进行日常会话,而真正的英语高手是可以充当专业领域(如IT、金融、数学等)翻译的。Python语言也一样,仅仅学习Python语言是不够的,要想找到更好的工作,或想得到更高的薪水,需要学会用Python语言实现某一领域的应用。
现在Python语言应用的领域比较多,人工智能就是其中之一,人工智能不仅涉及Python语言本身的技术,还涉及数学领域的知识,虽然比较火爆,但不是短时间内可以掌握的。然而,在众多的Python语言应用领域中,有一个领域与人工智能的火爆程度相当,但却不像人工智能入门那样难,这就是爬虫。
那么为什么爬虫领域如此火爆呢?其实爬虫的基本功能就是从网上下载各种类型的数据(如HTML、图像文件等)。可不要小瞧这些下载的数据,因为这些数据将成为很多伟大应用的数据源。例如,著名的Google搜索引擎,每天都会有数以亿计的查询请求,而搜索引擎为这些请求返回的数据,都来源于强大的爬虫。编写搜索引擎的第一步就是通过爬虫抓取整个互联网的数据,然后将这些数据保存到本地(以特定的数据格式),接下来就是对这些数据进行分析整理,然后才可以通过搜索引擎进行查询。虽然搜索引擎的实现技术非常多也非常复杂,但爬虫是最重要的,如果没有爬虫搜集数据,再伟大的分析程序也毫无用武之地。
除了搜索引擎,人工智能中的重要分支深度学习也需要爬虫抓取的数据来训练模型。例如,要想训练一个识别金字塔的深度学习模型,就需要大量与金字塔相关的图片进行训练。最简单的方式就是使用百度或Google搜索金字塔图片,然后用爬虫抓取这些图片到本地。这是利用了搜索引擎已经通过关键字分类的特性,并且重新利用了这些分类的图片。
通过这些例子可以了解到,学习爬虫是进入更高端领域的钥匙,所以Python爬虫将成为第一项需要掌握的热门技术。
尽管爬虫的基本功能是下载文件,但一个复杂的爬虫应用可不仅仅涉及网络技术。将数据下载后,还需要对数据进行分析,提取出需要的信息,以及进行数据可视化,甚至需要一个基于UI的可视化爬虫。所以与爬虫有关的技术还是很多的。
由于Python爬虫涉及的技术很多,学习资料过于分散,因此,笔者觉得很有必要编写一本全面介绍Python爬虫的实战类图书,分享笔者对Python爬虫及相关技术的理解和经验,帮助同行和感兴趣的朋友快速入门Python爬虫,并利用Python语言编写各种复杂的爬虫应用。笔者希望本书能起到抛砖引玉的作用,使读者对Python爬虫及其相关技术产生浓厚的兴趣,并能成功进入Python爬虫领域。
本书使用Python 3编写,并在书中探讨了关于Python爬虫的核心技术。本书分为五篇,共20章,涵盖了Python爬虫的基础知识、常用网络库、常用分析库、数据存储技术、异步数据处理、可见即可爬技术、抓取移动App、Scrapy、用OpenCV识别验证码等内容。本书还提供了大量的实例和项目,以便让读者可以身临其境地体验Python爬虫的魅力。
限于篇幅,本书无法涉及Python爬虫及相关技术的方方面面,只能尽笔者所能,与大家分享尽可能多的知识和经验,相信通过对本书的学习,读者可以拥有进一步深入学习的能力,达到Python爬虫高手的程度也只是时间问题。
最后,笔者希望本书能为Python爬虫及相关技术的普及,为广大从业者提供有价值的实践经验从而帮助他们快速上手贡献绵薄之力。
作者
2023年10月