前 言
随着大数据和人工智能的普及,Python的地位也变得水涨船高,许多技术人员投身于Python开发,其中网络爬虫是Python最为热门的应用领域之一。在爬虫领域,Python可以说是处于霸主地位,Python能解决爬虫开发过程中所遇到的难题,开发速度快且支持异步编程,大大缩短了开发周期,因此,学习Python爬虫编程,或为爬虫工程师的必备技能。
本书结构
本书共分18章,各章内容概述如下:
第1章介绍什么是网络爬虫、爬虫的类型和原理、爬虫搜索策略和反爬虫技术以及解决方案。
第2章讲解爬虫开发的基础知识,包括HTTP协议、请求头和Cookies的作用、HTML的布局结构、JavaScript的介绍、JSON的数据格式和Ajax的原理。
第3章介绍使用Chrome开发工具分析爬取网站,重点介绍开发者工具的Elements和Network标签的功能和使用方式,并通过开发者工具分析QQ网站。
第4章主要介绍Fiddler抓包工具的原理和安装配置,Fiddler用户界面的各个功能及使用方法。
第5章讲述了Urllib在Python 2和Python 3的变化及使用,包括发送请求、使用代理IP、Cookies的读写、HTTP证书验收和数据处理。
第6章介绍Python第三方库Requests的安装和使用,包括发送请求、使用代理IP、Cookies的读写、HTTP证书验收和文件下载与上传。
第7章介绍验证码的种类和识别方法,包括OCR的安装和使用、验证码图片处理和使用第三方平台识别验证码。
第8章讲述数据清洗的三种方法,包括字符串操作(截取、查找、分割和替换)、正则表达式的使用和第三方库Beautiful Soup的安装以及使用。
第9章讲述如何将数据存储到文件,分别介绍了CSV、Excel和Word的读写方法及数据存储。
第10章介绍ORM框架SQLAlchemy的安装及使用,实现关系型数据库持久化存储数据,这是企业级的关系型数据库操作。
第11章讲述非关系型数据库MongoDB的操作,介绍MongoDB的安装、原理结构和Python实现MongoDB读写。
第12章介绍爬取淘宝商品信息实例,包括网站分析、数据抓取、数据清洗以及存储在CSV文件中,读者应掌握爬虫的开发流程。
第13章介绍爬取QQ音乐全站歌曲实例,包括网站分析、数据抓取和实现SQLAlchemy存储歌曲信息并下载文件,使用异步编程实现分布式开发,提高爬取效率。
第14章是在第12章的基础上实现爬虫软件开发,包括PyQt5的安装、使用Qt Designer设计软件界面、搭建MVC开发架构。
第15章实现12306抢票爬虫开发,包括用户登录、查询车次、预订车票、提交订单和生成订单的分析以及功能实现。
第16章介绍微博爬虫开发,包括微博登录、采集热门微博、发布微博、关注微博用户和转发评论的分析以及功能实现。
第17章介绍Scrapy爬虫框架,包括Scrapy的运行机制、安装、项目创建以及各个组件的编写(Setting、Items、Item Pipelines和Spider)和文件下载。
第18章介绍Scrapy爬取QQ音乐全站歌曲实例,包括编写Spider实现数据抓取、Item Pipelines实现歌曲信息存储和歌曲下载、Items定义数据存储对象和Setting配置项目设置。
本书特色
循序渐进,知识全面:本书站在初学者的角度,围绕Python网络爬虫开发展开
讲解,从初学者必备基础知识着手,循序渐进地介绍了使用Python 3开发网络爬虫的各种知识,内容难度适中,由浅入深,实用性强,覆盖面广,条理清晰,且具有较强的逻辑性和系统性。
实例丰富,扩展性强:本书采用大量的实例进行讲解,力求通过实际操作使读者更容易地掌握爬虫开发。本书实例都经过作者精心设计和挑选,根据作者的实际开发经验总结而来,涵盖了在实际开发中所遇到的各种问题。对于精选案例,都尽可能做到步骤详尽、结构清晰、分析深入浅出,而且案例的扩展性强,读者可根据实际需求扩展开发。
基于理论,注重实践:在讲解过程中,不仅介绍理论知识,而且安排了综合应用实例或小型应用程序,将理论应用到实践中,加强读者的实际开发能力,巩固开发技能和相关知识。
源码提供
本书的实例源码可以在百度网盘下载。
链接地址1:https://pan.baidu.com/s/1htxBpic 密码:aesy
链接地址2:https://pan.baidu.com/s/1E7axRN9rC0i9ASM1124lAw
如果你在下载过程中遇到问题,可发送邮件至
[email protected]获得帮助,邮件标题为“玩转Python网络爬虫下载资源”。
在线服务
读者在学习或者工作的过程中,如果遇到实际问题,可以加入QQ群93314951或657341423与笔者联系,笔者会在第一时间给予回复。
读者对象
本书主要适合以下读者阅读:
Python网络爬虫初学者以及在校学生。
Python初级爬虫工程师。
从事数据抓取的技术人员。
其他学习Python网络爬虫的开发人员。
虽然笔者力求本书更臻完美,但由于水平所限,难免会出现错误,特别是实例中爬取的网站可能随时更新,导致源码在运行过程中出现问题,欢迎广大读者和高手专家给予指正,笔者将十分感谢。
编 者
2018年1月