Python网络爬虫:从入门到精通
上QQ阅读APP看书,第一时间看更新

前言

随着大数据时代的到来,数据的价值不断凸显和提升,而互联网是大量数据的主要载体,如何有效地获取并利用互联网上的大量数据是一个非常重要的问题。基于这种需求,网络爬虫应运而生,并迅速发展成为一门比较成熟的应用技术,逐渐成为相关企事业单位进行数据抓取与应用的重要选择之一;网络爬虫也成为高等院校数据科学、统计学、计算机科学、软件工程等相关专业的重点培养技能之一。

网络爬虫是一种数据采集技术,也是一种能够按照一定规则自动抓取互联网上信息的程序或脚本。常见的应用是搜索引擎的爬虫,它为搜索引擎抓取互联网上众多的网页信息,以便用户精确地在互联网上找到自己想要的内容。一般来讲,爬虫都是从一个或者若干个初始网页的 URL 开始,不断分析页面上的元素并抓取需要的内容,或沿着层级不断深入抓取,或在页面同级遍历抓取,直到满足一定条件才会停止。此外,被网络爬虫抓取到的数据会被系统存储,经过一定的分析、过滤,并建立索引,以便之后的查询、检索和使用。

Python 是实现网络爬虫比较主流的程序设计语言,它是一种解释型的、面向对象的、支持动态数据类型的高级程序设计语言。Python 语法简洁、功能强大,拥有十分出色的编写效率,同时 Python 还拥有活跃的开源社区和海量程序库,比较适合编写网络爬虫程序或数据分析程序。本书以 Python 为基础,由浅入深地讲解网络爬虫技术;同时,通过具体的程序编写和实战项目来帮助读者了解和学习 Python网络爬虫,使读者可以独立编写Python网络爬虫程序,从而胜任Python网络爬虫工程师、数据分析师等相关岗位的工作。

本书共12章,包括基础篇、进阶篇、提高篇和实战篇4个部分。基础篇包括第 1、2、3章,分别为 Python基础及网络爬虫、静态网页抓取、数据存储。进阶篇包括第4、5、6章,分别为JavaScript与动态内容、模拟登录与验证码、爬虫数据的分析与处理。提高篇包括第 7、8、9 章,分别为爬虫的灵活性和多样性、Selenium模拟浏览器与网站测试、爬虫框架Scrapy与反爬虫。实战篇提供了3个实战项目供读者学习参考。

本书的主要特点如下。

(1)定位零基础人群,强化一站式教学:本书定位于Python网络爬虫的零基础人群,内容浅显易懂,知识讲解循序渐进,从根本上解决网络爬虫学不懂、学不会的问题。全书提供充足的课堂教学提示,每章末搭配充足的课后练习题,强化赋能一站式教学。

(2)结构清晰,理论结合实践:本书结构清晰,层次明了,详细介绍了网络爬虫技术众多方面的知识,从基础、进阶、提高3个部分介绍了数据抓取、数据存储、数据分析与处理、爬虫框架、反爬虫等核心知识,内容较为全面;另外,本书坚持将理论知识与实践操作结合,在重视理论基础的前提下,从实用性和丰富度出发,结合实例演示与实战训练解读网络爬虫程序编写的核心流程。

(3)章节案例丰富,实战性强:网络爬虫是实战性、操作性非常强的技术,本书提供丰富的案例讲解,搭配源代码程序与详细的代码注释;实战项目从生活的实际出发,选取实用性、趣味性兼具的主题内容进行网络爬虫实践,力求提高读者的网络爬虫实操技能。

(4)内容注重时效,分配比例合理:本书中的程序代码均采用Python 3版本,并使用目前主流的各种Python框架和库,注重内容的时效性;另外,本书的正文知识讲解与案例源代码采用合理的分配比例,基于“一个知识点对应一个案例源代码”的模式,最大限度地保证了代码的易用性和易读性。

(5)二十大精神进教材,贯彻立德树人理念:本书深入贯彻落实“党的二十大精神进教材”的指示,贯彻立德树人理念,书中内容紧跟行业理念、技术发展和社会对人才的需求,以 Python 在网络爬虫中的应用为载体,培养读者的文化自信、创新思维、精益求精的工匠精神,提升读者的协作能力和交流沟通能力,优化编码规范并深化读者对网络爬虫工作职业道德的理解。读者可扫描右侧二维码学习。

(6)配套教学资源丰富,满足教学需求:为了方便教学,我们为使用本书的教师提供了丰富的教学资源,包括教学大纲、PPT课件、微课视频、课后习题答案、源代码、模拟试卷等。如有需要,请登录人邮教育社区(www.ryjiaoyu.com)搜索书名获取部分教学资源。

本书由吕云翔担任主编,张扬、杨壮、戴轶群担任副主编,韩延刚、谢吉力、曾洪立参与了部分内容的编写及资料整理工作。

由于编者的水平有限,疏漏之处在所难免,我们期待和广大的读者进行交流,读者可发送电子邮件至:yunxianglu@hotmail.com。

编者

2023年1月