前言
网络爬虫是一种数据采集技术,也是一种能够按照一定规则自动抓取互联网上信息的程序或脚本。一个常见的应用是搜索引擎的爬虫,它为搜索引擎爬取互联网上众多的网页,以便用户能够精确地在互联网上找到自己想要的内容。一般来讲,传统爬虫都是从一个或若干个初始网页的URL开始,不断分析页面上的元素并抓取需要的内容,或沿着层级不断深入抓取,或在页面同级遍历抓取,直到满足一定条件才会停止。爬虫在大数据的核心技术中也具有至关重要的作用,除了购买的数据集之外,爬虫爬取数据也是获取数据的一条主要途径。此外,所有被爬虫抓取到的数据都会被系统存储,进行一定的分析、过滤,并建立索引,以便之后的查询、检索和使用。
Python是一种解释型、面向对象的、动态数据类型的高级程序设计语言,Python语法简洁、功能强大,在众多高级语言中拥有十分出色的编写效率,同时还拥有活跃的开源社区和海量程序库,十分适合用来进行网络内容的抓取和处理。本书将以Python语言为基础,由浅入深地探讨网络爬虫技术,同时,通过具体的程序编写和实践来帮助读者了解与学习Python爬虫。
本书共分为14章,第1章、第2章介绍了Python语言和爬虫编写的基础知识。第3章介绍了静态网页采集。第4章讨论了Python对文件和数据的存储,涉及数据库的相关知识。第5、6章的内容针对相对复杂一些的爬虫抓取任务,主要着眼于动态网页内容的抓取、表单登录和验证码等方面。第7章涉及了对抓取到的原始数据的深入处理和分析。第8~10章旨在对爬虫程序进行更深入的探讨,基于爬虫介绍了多个不同主题的内容。第11~14章通过一些实战的例子来深入讨论如何应用爬虫编程的理论知识。
本书的主要特点如下。
●内容全面,结构清晰:本书详细介绍了网络爬虫技术的方方面面,讨论了数据抓取、数据处理和数据分析的整个流程。全书结构清晰,坚持理论知识与实践操作相结合。
●循序渐进,生动简洁:从最简单的Python程序示例开始,在网络爬虫的核心主题之下一步步深入,兼顾内容的广度与深度。在行文中,使用生动简洁的阐述方式,力争详略得当。
●示例丰富,实战性强:网络爬虫是实践性、操作性非常强的技术,本书将提供丰富的代码来作为读者的参考,同时对必要的术语和代码进行解释。从实际出发,选取实用性、趣味性兼具的主题进行网络爬虫实践。
●内容新颖,不落窠臼:本书中程序代码均采用Python 3版本,并使用了目前主流的各种Python框架和库来编写,注重内容的时效性。网络爬虫需要动手实践才能真正理解,本书最大限度地保证了代码与程序示例的易用性和易读性。
本书的编者为吕云翔、张扬、杨壮、姚泽良、韩延刚、李彬涵、徐羿、黄逸菲,曾洪立参与了部分内容的编写及资料整理工作。
由于编者水平有限,疏漏和不足之处在所难免,欢迎广大读者与我们交流讨论(yunxianglu@hotmail.com)。
编者