前言 网络爬虫又称为网络蜘蛛,是指按照某种规则在网络上爬取所需内容的脚本程序。它们被广泛用于互联网搜索引擎及各种网站的开发中,同时也是大数据和数据分析领域中的重要角色。众所周知,每个网页通常都包含其他网页的入口,网络爬虫则通过一个网址依次进入其他网址获取所需内容。爬虫可以按一定逻辑大批量采集目标页面内容,并对数据做进一步的处理,人们借此能够更好更快地获得并使用他们感兴趣的信息,从而方便地完成很多有价值的工作。 Python是一种解释型、面向对象的、动态数据类型的高级程序设计语言,Python语法简洁,功能强大,在众多高级语言中拥有十分出色的编写效率,同时还拥有活跃的开源社区和海量程序库,十分适合用来进行网络内容的爬取和处理。本书将以Python语言为基础,由浅入深地探讨网络爬虫技术,同时,通过具体的程序编写和实践来帮助读者了解和学习Python爬虫。 本书共包含20个案例,从内容上分为四部分,分别代表不同的爬虫阶段及场景,包括了Python爬虫编写的基础知识,以及对爬虫数据的存储、深入处理和分析。 第一部分爬虫基础篇。该部分简单介绍了爬虫的基本知识,便于读者掌握相关知识,对爬虫有基本的认识。 第二部分实战基础篇(9个案例)。该部分既有简单、容易实现的入门案例,也有改进的进阶案例。丰富的内容包括爬虫常用的多种工具及方法,覆盖了爬虫的请求、解析、清洗、入库等全部常用流程,是入门实践的最佳选择。 第三部分框架应用篇(5个案例)。该部分内容从爬虫框架的角度出发,介绍了几个常用框架的案例,重点介绍了Scrapy框架,以及基于Python 3后的新特性的框架,如Gain和PySpider等,同时也对高并发应用场景下的异步爬虫做了案例解析,是不容错过的精彩内容。 第四部分爬虫应用场景及数据处理篇(6个案例)。该部分内容从实际应用的角度出发,通过不同的案例展示了爬虫爬取的数据的应用场景以及针对爬虫数据的数据分析,可以让读者体会到爬虫在不同场景上的应用,从另一个角度展示了爬虫的魅力,可以给读者带来一些新的思考。 这四部分由浅入深地介绍了爬虫常用的方法和工具,以及对爬虫数据处理的应用和实现。但需要注意的是,爬虫的技术栈不仅仅包含这几部分,而且在实际工作中的细分方法也不尽相同。本书只是对目前爬虫技术中最为常见的一些知识点,用案例的形式进行了分类和讲解,而更多的应用也值得读者在掌握一定的基础技能后进一步探索。 本书特色 (1) 内容全面,结构清晰。本书通过案例详细介绍网络爬虫技术的基础知识,讨论了数据爬取、数据处理和数据分析的整个流程。 (2) 循序渐进,生动简洁。从最简单的Python爬虫程序案例开始讲解,兼顾内容的广度与深度,并使用生动简洁的阐述方式,力争详略得当。 (3) 示例丰富,实战性强。网络爬虫是实践性、操作性非常强的技术,本书从生活实际出发,选取实用性、趣味性兼具的主题进行网络爬虫实践。 (4) 内容新颖,不落窠臼。本书中的代码均采用最新的Python 3版本,并使用了主流的Python框架和库来编写,注重内容的时效性。网络爬虫需要动手实践才能真正理解,本书最大限度地保证了代码与程序示例的易用性和易读性。 配套资源 为便于教与学,本书配有微课视频(380分钟)和源代码。 (1) 获取微课视频的方式: 先刮开并用手机微信App扫描本书封底的文泉云盘防盗码,授权后再扫描书中相应的视频二维码,观看教学视频。 (2) 获取源代码和全书网址的方式: 先刮开并用手机微信App扫描本书封底的文泉云盘防盗码,授权后再扫描下方的二维码即可获取。 源代码 全书网址 (3) 其他配套资源可以扫描本书封底的“书圈”二维码,关注后回复本书书号,即可下载。 读者对象 本书主要面向广大从事数据分析、机器学习、数据挖掘或深度学习的专业人员,从事高等教育的专任教师,高等学校的在读学生及相关领域的广大科研人员。 本书由吕云翔、韩延刚、张扬任主编,谢吉力、杨壮、王渌汀、王志鹏、杨瑞翌任副主编。此外,曾洪立参与了部分内容的编写、素材整理和配套资源的制作工作。 本书作者在编写过程中参考了诸多相关资料,在此对相关资料的作者表示衷心的感谢。 限于个人水平和时间仓促,书中难免存在疏漏之处,欢迎广大读者批评指正。 作者 2023年3月