实战Python网络爬虫
上QQ阅读APP看书,第一时间看更新

前言

随着大数据和人工智能的普及,Python的地位也变得水涨船高,许多技术人员投身于Python开发,其中网络爬虫是Python最为热门的应用领域之一。在爬虫领域,Python可以说是处于霸主地位,Python能解决爬虫开发过程中所遇到的难题,开发速度快且支持异步编程,大大缩短了开发周期。此外,从事数据分析的工程师,为获取数据,很多时候也会用到网络爬虫的相关技术,因此,Python爬虫编程已成为爬虫工程师和数据分析师的必备技能。

本书结构

本书共分28章,各章内容概述如下:

第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章~第8章介绍Python第三方库Requests、Requests-Cache爬虫缓存和Requests-HTML,包括发送请求、使用代理IP、Cookies的读写、HTTP证书验收和文件下载与上传、复杂的请求方式、缓存的存储机制、数据清洗以及Ajax动态数据爬取等内容。

第9章介绍网页操控和数据爬取,重点讲解Selenium的安装与使用,并通过实战项目“百度自动答题”,讲解了Selenium的使用。

第10章介绍手机App数据爬取,包括Appium的原理与开发环境搭建、连接Android系统,并通过实战项目“淘宝商品采集”,介绍了App数据的爬取技巧。

第11章介绍Splash、Mitmproxy与Aiohttp的安装和使用,包括Splash动态数据抓取、Mitmproxy抓包和Aiohttp高并发抓取。

第12章介绍验证码的种类和识别方法,包括OCR的安装和使用、验证码图片处理和使用第三方平台识别验证码。

第13章讲述数据清洗的三种方法,包括字符串操作(截取、查找、分割和替换)、正则表达式的使用和第三方库BeautifulSoup的安装以及使用。

第14章讲述如何将数据存储到文件,包括CSV、Excel和Word文件的读取和写入方法。

第15章介绍ORM框架SQLAlchemy的安装及使用,实现关系型数据库持久化存储数据。

第16章讲述非关系型数据库MongoDB的操作,包括MongoDB的安装、原理和Python实现MongoDB的读写。

第17章至第21章介绍了5个实战项目,分别是:爬取51Job招聘信息、分布式爬虫——QQ音乐、12306抢票爬虫、微博爬取和微博爬虫软件的开发。

第22章至第25章介绍了Scrapy爬虫框架,包括Scrapy的运行机制、项目创建、各个组件的编写(Setting、Items、Item Pipelines和Spider)和文件下载及Scrapy中间件,并通过实战项目“Scrapy+Selenium爬取豆瓣电影评论”、“Scrapy+Splash爬取B站动漫信息”和“Scrapy+Redis分布式爬取猫眼排行榜”、“爬取链家楼盘信息”和“QQ音乐全站爬取”,深入讲解了Scrapy的应用和分布式爬虫的编写技巧。

第26章介绍爬虫的上线部署,包括非框架式爬虫和框架式爬虫的部署技巧。

第27章介绍常见的反爬虫技术,并给出了可行的反爬虫解决方案。

第28章介绍爬虫框架的编写,学习如何自己动手编写一款爬虫框架,以满足特定业务场景的需求。

本书特色

循序渐进,涉及面广:本书站在初学者的角度,循序渐进地介绍了使用Python开发网络爬虫的各种知识,内容由浅入深,几乎涵盖了目前网络爬虫开发的各种热门工具和前瞻性技术。

实战项目丰富,扩展性强:本书采用大量的实战项目进行讲解,力求通过实际应用使读者更容易地掌握爬虫开发技术,以应对业务需求。本书项目经过编者精心设计和挑选,根据实际开发经验总结而来,涵盖了在实际开发中所遇到的各种问题。对于精选项目,尽可能做到步骤详尽、结构清晰、分析深入浅出,而且案例的扩展性强,读者可根据实际需求扩展开发。

从理论到实践,注重培养爬虫开发思维:在讲解过程中,不仅介绍理论知识,注重培养读者的爬虫开发思维,而且安排了综合应用实例或小型应用程序,使读者能顺利地将理论应用到实践中。

特色干货,倾情分享:本书大部分内容都来自作者多年来的编程实践,操作性很强。值得关注的是,本书还介绍了爬虫软件和爬虫框架的开发,供学有余力的读者扩展知识结构,提升开发技能。

源代码下载

本书所有程序代码均在Python 3.6下调试通过,源代码Github下载地址:

https://github.com/xyjw/python-Reptile

你也可以扫描下面的二维码下载。

如果你在下载过程中遇到问题,可发送邮件至554301449@qq.com获得帮助,邮件标题为“实战Python网络爬虫下载资源”。

技术服务

读者在学习或者工作的过程中,如果遇到实际问题,可以加入QQ群93314951与笔者联系,笔者会在第一时间给予回复。

读者对象

本书主要适合以下读者阅读:

● Python网络爬虫初学者及在校学生。

● Python初级爬虫工程师。

● 从事数据抓取和分析的技术人员。

● 学习Python程序设计的开发人员。

虽然笔者力求本书更臻完美,但由于水平所限,难免会出现错误,特别是实例中爬取的网站可能随时更新,导致源码在运行过程中出现问题,欢迎广大读者和高手专家给予指正,笔者将十分感谢。

黄永祥

2019年1月