编辑推荐

玩转Python网络爬虫》站在初学者的角度,从原理到实践,深入、系统地阐述了使用Python3开发网络爬虫的核心技术,《玩转Python网络爬虫》从逻辑上可分为基础篇、实战篇和爬虫框架篇三部分。

基础篇
主要介绍了编写网络爬虫所需的基础知识,包括网站分析、数据抓取、数据清洗和数据入库。
网站分析讲述如何使用Chrome和Fiddler抓包工具对网站做全面分析。
数据抓取介绍了Python爬虫模块Urllib和Requests的基础知识。
数据清洗主要介绍字符串操作、正则表达式和BeautifulSoup的使用。
数据入库分别讲述了MySQL和MongoDB的操作,通过ORM框架SQLAlchemy实现数据持久化,实现企业级开发。

实战篇
深入讲解了分布式爬虫、爬虫软件的开发与应用、12306抢票程序和微博爬取,所举实例均来自于编者的开发实践,可帮助读者快速提升技能,开发自己的实际项目。

爬虫框架篇
主要讲述Scrapy的原理和特性,通过爬取QQ音乐实例,介绍Scrapy在网络爬虫中的应用技巧。本部分内容可使读者深入地了解Scrapy的使用,并举一反三,编写出复杂的网络爬虫程序。

玩转Python网络爬虫》既介绍编写网络爬虫的各种技术,又注重以网络爬虫和网站分析的思想为出发点,培养读者编写网络爬虫的逻辑思维,使读者能够针对不同的网站制定出不同的爬虫方案;此外,还介绍了反爬虫机制和相应的解决方案,是读者入职爬虫工程师的很好实践。

玩转Python网络爬虫》所有程序代码均在Python3.5环境下测试通过,读者可从网络上下载《玩转Python网络爬虫》所有实例源代码。

内容简介

玩转Python网络爬虫》站在初学者的角度,从原理到实践,循序渐进地讲述了使用Python开发网络爬虫的核心技术。《玩转Python网络爬虫》从逻辑上可分为基础篇、实战篇和爬虫框架篇三部分。基础篇主要介绍了编写网络爬虫所需的基础知识,分别是网站分析、数据抓取、数据清洗和数据入库。网站分析讲述如何使用Chrome和Fiddler抓包工具对网络做全面分析;数据抓取介绍了Python爬虫模块Urllib和Requests的基础知识;数据清洗主要介绍字符串操作、正则和BeautifulSoup的使用;数据入库分别讲述了MySQL和MongoDB的操作,通过ORM框架SQLAlchemy实现数据持久化,实现企业级开发。实战篇深入讲解了分布式爬虫、爬虫软件开发与应用、12306抢票程序和微博爬取,所举示例均来自于开发实践,可帮助读者快速提升技能,开发实际项目。框架篇主要讲述Scrapy的基础知识,并通过爬取QQ音乐为实例,让读者深层次了解Scrapy的使用。
玩转Python网络爬虫》内容丰富,注重实战,适用于从零开始学习网络爬虫的初学者,或者是已经有一些网络爬虫编写经验,但希望更加全面、深入理解Python爬虫的开发人员。

作者简介

黄永祥,信息管理与信息系统专业学士,曾从事过系统开发和自动化开发,精通B/S和C/S自动化测试技术,多年网络爬虫开发经验,对反爬虫机制有独到的见解,精通Flask、Django等Web框架并有丰富的网站开发经验。曾就职于广州易点科技有限公司,担任Python开发工程师,目前就职于广东数据集成有限公司。热爱分享和新技术的探索,在CSDN上发表多篇Python技术文章。

目录

目录
第1章?理解网络爬虫1
1.1爬虫的定义1
1.2爬虫的类型2
1.3爬虫的原理3
1.4爬虫的搜索策略5
1.5反爬虫技术及解决方案6
1.6本章小结8
第2章?爬虫开发基础9
2.1HTTP与HTTPS9
2.2请求头11
2.3Cookies13
2.4HTML14
2.5JavaScript16
2.6JSON18
2.7Ajax19
2.8本章小结20
第3章?Chrome分析网站21
3.1Chrome开发工具21
3.2Elements标签22
3.3Network标签23
3.4分析QQ音乐27
3.5本章小结29
第4章?Fiddler抓包工具30
4.1Fiddler介绍30
4.2Fiddler安装配置31
4.3Fiddler抓取手机应用33
4.4Toolbar工具栏36
4.5WebSession列表37
4.6View选项视图40
4.7Quickexec命令行41
4.8本章小结42
第5章?Urllib数据抓取43
5.1Urllib简介43
5.2发送请求44
5.3复杂的请求46
5.4代理IP47
5.5使用Cookies48
5.6证书验证50
5.7数据处理51
5.8本章小结52
第6章?Requests数据抓取54
6.1Requests简介及安装54
6.2请求方式55
6.3复杂的请求方式57
6.4下载与上传60
6.5本章小结63
第7章?验证码识别64
7.1验证码类型64
7.2OCR技术66
7.3第三方平台69
7.4本章小结72
第8章?数据清洗74
8.1字符串操作74
8.2正则表达式78
8.3BeautifulSoup介绍及安装84
8.4BeautifulSoup的使用86
8.5本章小结90
第9章?文档数据存储92
9.1CSV数据写入和读取92
9.2Excel数据写入和读取94
9.3Word数据写入和读取99
9.4本章小结101
第10章?ORM框架104
10.1SQLAlchemy介绍104
10.2安装SQLAlchemy105
10.3连接数据库106
10.4创建数据表108
10.5添加数据111
10.6更新数据112
10.7查询数据114
10.8本章小结116
第11章?MongoDB数据库操作118
11.1MongoDB介绍118
11.2安装及使用120
11.2.1MongoDB120
11.2.2MongoDB可视化工具121
11.2.3PyMongo123
11.3连接数据库123
11.4添加文档125
11.5更新文档126
11.6查询文档127
11.7本章小结130
第12章?项目实战:爬取淘宝商品信息131
12.1分析说明131
12.2功能实现134
12.3数据存储136
12.4本章小结138
第13章?项目实战:分布式爬虫——QQ音乐139
13.1分析说明139
13.2歌曲下载140
13.3歌手和歌曲信息145
13.4分类歌手列表148
13.5全站歌手列表150
13.6数据存储152
13.7分布式概念154
13.7.1GIL是什么154
13.7.2为什么会有GIL154
13.8并发库concurrent.futures155
13.9分布式爬虫157
13.10本章小结159
第14章?项目实战:爬虫软件——淘宝商品信息161
14.1分析说明161
14.2GUI库介绍162
14.3PyQt5安装及环境搭建162
14.4软件界面开发165
14.5MVC——视图169
14.6MVC——控制器171
14.7MVC——模型172
14.8扩展思路173
14.9本章小结174
第15章?项目实战:12306抢票176
15.1分析说明176
15.2验证码验证177
15.3用户登录与验证181
15.4查询车次187
15.5预订车票193
15.6提交订单196
15.7生成订单204
15.8本章小结209
第16章?项目实战:玩转微博219
16.1分析说明219
16.2用户登录220
16.3用户登录(带验证码)232
16.4关键字搜索热门微博240
16.5发布微博247
16.6关注用户253
16.7点赞和转发评论257
16.8本章小结263
第17章?Scrapy爬虫框架265
17.1爬虫框架265
17.2Scrapy的运行机制267
17.3安装Scrapy268
17.4爬虫开发快速入门270
17.5Spiders介绍277
17.6Spider的编写278
17.7Items的编写282
17.8ItemPipeline的编写284
17.9Selectors的编写288
17.10文件下载291
17.11本章小结296
第18章?项目实战:Scrapy爬取QQ音乐298
18.1分析说明298
18.2创建项目299
18.3编写setting300
18.4编写Items301
18.5编写ItemPipelines302
18.6编写Spider305
18.7本章小结310

前言/序言

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



编者
2018年1月

其他推荐