新書推薦:
《
伟大民族:从路易十五到拿破仑的法国史(方尖碑)
》
售價:NT$
857.0
《
古今“书画同源”论辨——中国书法与中国绘画的关系问题兼中国画笔墨研究
》
售價:NT$
602.0
《
《日本文学史序说》讲演录
》
售價:NT$
332.0
《
无尽的海洋:美国海事探险与大众文化(1815—1860)
》
售價:NT$
454.0
《
治盗之道:清代盗律的古今之辨
》
售價:NT$
556.0
《
甲骨文丛书·剑桥世界暴力史(第一卷):史前和古代世界(套装全2册)
》
售價:NT$
959.0
《
甲骨文丛书·中华早期帝国:秦汉史的重估
》
售價:NT$
1367.0
《
欲望与家庭小说
》
售價:NT$
449.0
|
內容簡介: |
本书讲解了如何使用Python编写网络爬虫,涵盖爬虫的概念、Web基础、Chrome、Charles和Packet Capture抓包、urllib、Requests请求库、lxml、Beautiful Soup、正则表达式解析数据、CSV、Excel、MySQL、Redis、MongoDB保存数据、反爬虫策略应对、爬虫框架Scrapy的使用与部署,以及应用案例。本书结构清晰、内容精练,代码示例典型实用,附带实践过程中遇到问题的解决方案,非常适合Python初学者和进阶读者阅读。
|
關於作者: |
庄培杰,CSDN博客专家,排名146,访问量达1625W ,简书程序员专栏优秀作者。从事编程开发10余年,熟悉Python的方方面面,尤其擅长Python爬虫和数据分析。现任思可教育投资开发(深圳)有限公司Python高级工程师工程师。
|
目錄:
|
目录
第1章Python爬虫概念与Web基础1
1.1爬虫概念1
1.1.1什么是爬虫1
1.1.2爬虫使用场景的引入2
1.1.3爬虫的组成部分3
1.1.4模拟请求3
1.1.5数据解析4
1.1.6数据保存5
1.1.7爬虫的学习路线5
1.2HTTP简述6
1.2.1简述一次网络请求过程6
1.2.2URI和URL7
1.2.3HTTP请求报文8
1.2.4HTTP响应报文10
1.3网页的组成13
1.3.1HTML简介13
1.3.2CSS选择器简介16
1.3.3JavaScript简介17
第2章Python爬虫基本库的使用18
2.1Chrome抓包详解18
2.1.1Controls20
2.1.2Filter21
2.1.3Request Table21
2.2urllib库详解23
2.2.1发送请求23
2.2.2抓取二进制文件24
2.2.3模拟GET和POST请求25
2.2.4修改请求头26
2.2.5设置连接超时27
2.2.6延迟提交数据27
2.2.7设置代理27
2.2.8Cookie28
2.2.9urllib.parse模块29
2.2.10urllib.error异常处理模块31
2.2.11urllib.robotparser模块32
2.3用lxml库解析网页节点34
2.3.1安装库34
2.3.2XPath语法速成34
2.4实战:爬取小说《三国演义》36
第3章Python爬虫抓包与数据解析41
3.1抓包进阶41
3.1.1HTTPS介绍42
3.1.2HTTPS的工作流程43
3.1.3Charles抓包43
3.1.4Packet Capture抓包49
3.2Requests HTTP请求库52
3.2.1Requests库简介53
3.2.2Requests HTTP基本请求53
3.2.3Requests 请求常用设置54
3.2.4Requests 处理返回结果54
3.2.5Requests 处理Cookie55
3.2.6Requests重定向与请求历史55
3.2.7Requests 错误与异常处理55
3.2.8Requests Session会话对象55
3.2.9Requests SSL证书验证56
3.3实战:爬取微信文章中的图片、音频和视频56
3.3.1爬取标题56
3.3.2爬取图片57
3.3.3爬取音频58
3.3.4爬取视频60
3.3.5代码整理64
3.4Beautiful Soup解析库67
3.4.1Beautiful Soup简介67
3.4.2Beautiful Soup对象实例化67
3.4.3Beautiful Soup的四大对象68
3.4.4Beautiful Soup的各种节点69
3.4.5Beautiful Soup文档树搜索69
3.4.6Beautiful Soup 使用CSS选择器70
3.5实战:爬取壁纸站点的壁纸70
3.6正则表达式74
3.6.1re模块74
3.6.2正则规则详解75
3.6.3正则练习77
3.7实战:爬取市级编码列表79
3.7.1获取所有市级的跳转链接列表80
3.7.2解析表格获得所有市级天气链接81
3.7.3提取市级编码82
3.7.4整合调整代码83
第4章用CSV和Excel存储数据85
4.1用CSV文件存储数据85
4.1.1CSV写入86
4.1.2CSV读取87
4.2实战:爬取星座运势88
4.3用Excel文件存储数据89
4.3.1Excel写入89
4.3.2Excel读取90
4.4实战:爬取某音乐平台排行榜91
第5章用数据库存储数据99
5.1MySQL数据库99
5.1.1安装MySQL100
5.1.2在Windows环境下安装MySQL100
5.1.3在Windows环境下配置MYSQL_HOME环境变量101
5.1.4在Windows环境下设置MySQL登录密码101
5.1.5在Windows环境下启动或关闭MySQL服务102
5.1.6Mac环境103
5.1.7Ubuntu环境103
5.1.8MySQL的基本操作104
5.1.9MySQL数据库语法速成106
5.1.10Python连接MySQL数据库110
5.1.11MySQL特殊符号和表情问题114
5.1.12实战:抓取某技术网站数据115
5.2数据库可视化工具DataGrip122
5.2.1建立数据库关联122
5.2.2编写SQL语句123
5.2.3常见问题:连接远程主机124
5.3Redis数据库125
5.3.1安装Redis126
5.3.2redis-py库的安装130
5.3.3redis-py基本操作示例130
5.3.4实战:爬取视频弹幕并保存到Redis134
5.4MongoDB数据库137
5.4.1安装MongoDB137
5.4.2安装PyMongo库140
5.4.3PyMongo基本操作示例140
5.4.4实战:爬取某电商网站关键字搜索结果并保存到MongoDB144
第6章Python应对反爬虫策略148
6.1反爬虫概述148
6.1.1为什么会出现反爬虫149
6.1.2常见的爬虫与反爬虫大战149
6.2反爬虫策略150
6.2.1User-Agent限制150
6.2.2302重定向151
6.2.3IP限制151
6.2.4什么是网络代理151
6.2.5如何获取代理IP151
6.2.6ADSL拨号代理152
6.2.7Squid 配置代理缓存服务器156
6.2.8TinyProxy配置代理缓存服务器158
6.2.9Cookie限制159
6.3JavaScript反爬虫策略159
6.3.1Ajax动态加载数据159
6.3.2实战:爬取某素材网内容分析159
6.3.3数据请求分析160
6.3.4编写代码163
6.4Selenium模拟浏览器操作166
6.4.1Selenium简介166
6.4.2安装Selenium167
6.4.3Selenium常用函数168
6.5实战:爬取某网站的特定图172
6.6PhantomJS175
6.6.1在Windows上安装PhantomJS175
6.6.2在Mac上安装PhantomJS175
6.6.3在Ubuntu上安装PhantomJS176
6.6.4关于PhantomJS的重要说明176
6.7常见验证码策略176
6.7.1图片验证码177
6.7.2实战:实现图片验证码自动登录178
6.7.3实战:实现滑动验证码自动登录185
第7章Python爬虫框架Scrapy(上)196
7.1Scrapy框架简介与安装197
7.1.1Scrapy相关信息197
7.1.2Scrapy的安装197
7.2实战:爬取某网站每日壁纸199
7.2.1抓取目标分析199
7.2.2创建爬虫脚本201
7.2.3编写爬虫脚本202
7.2.4运行爬虫脚本203
7.2.5解析数据203
7.3Scrapy架构简介204
7.3.1Scrapy架构图204
7.3.2各个模块间的协作流程205
7.3.3协作流程拟人化对话版206
7.4Spider详解207
7.4.1Spider的主要属性和函数207
7.4.2Spider运行流程207
7.5Request类和Response类209
7.5.1Request详解209
7.5.2Response类常用参数、方法与子类210
7.5.3选择器211
7.5.4Scrapy Shell212
7.6Item详解213
7.7Item Pipeline详解213
7.7.1自定义Item Pipeline类213
7.7.2启用Item Pipeline214
7.8实战:完善爬取每日壁纸的脚本214
7.8.1定义BingItem215
7.8.2使用ImagesPipeline215
7.8.3修改Spider代码216
7.8.4运行爬虫脚本216
7.9设置请求头217
7.9.1构造Request时传入217
7.9.2修改settings.py文件217
7.9.3为爬虫添加custom_settings字段218
7.10下载中间件详解218
7.10.1自定义Downloader Middleware类218
7.10.2启用自定义的代理下载中间件219
7.11实战:爬取某站点绘画频道的图片219
7.11.1分析爬取的站点219
7.11.2新建项目与明确爬取目标221
7.11.3创建爬虫爬取网页221
7.11.4设置代理223
7.11.5解析数据223
7.11.6存储数据224
7.11.7完善代码226
第8章Python爬虫框架Scrapy(下)228
8.1Scrapy对接Selenium228
8.1.1如何对接228
8.1.2对接示例:爬取某网站首页文章229
8.2实战:用Scrapy实现一个简单的代理池232
8.2.1代理池的设计232
8.2.2创建项目232
8.2.3编写获取IP的爬虫233
8.2.4编写检测IP的爬虫238
8.2.5编写调度程序240
8.2.6编写获取代理IP的接口241
8.2.7使用代理243
8.3用Scrapyrt调度Scrapy243
8.3.1相关文档与安装Scrapyrt243
8.3.2Scrapyrt GET请求相关参数244
8.3.3Scrapyrt POST请求相关参数246
8.4用Docker部署Scrapy246
8.4.1Docker简介246
8.4.2下载并安装Docker247
8.4.3创建Dockerfile249
8.4.4构建Docker镜像250
8.4.5把生成的Docker镜像推送到Docker Hub251
8.4.6在云服务器上运行Docker镜像253
第9章数据分析案例:Python岗位行情254
9.1数据爬取254
9.2NumPy库和pandas库258
9.2.1ndarray数组259
9.2.2ndarray数组的常用操作260
9.2.3pandas库263
9.3用Matplotlib实现数据可视化268
9.3.1Matplotlib中文乱码问题269
9.3.2Matplotlib绘制显示不全270
9.3.3用Matplotlib生成图表并进行分析271
9.4用Wordcloud库进行词云绘制275
9.4.1Wordcloud简介275
9.4.2Wordcloud构造函数与常用方法276
9.4.3词云绘制277
9.5小结280
第10章数据分析案例:某婚恋网站交友情况分析281
10.1数据爬取281
10.2安装Jupyter Notebook287
10.3安装pyecharts288
10.4数据分析289
10.4.1读取CSV文件里的数据289
10.4.2分析身高290
10.4.3分析学历292
10.4.4分析年龄292
10.4.5分析城市294
10.4.6分析交友宣言294
10.5小结296
|
內容試閱:
|
前 言
笔者是一名Android开发工程师,在接触Python之前,每天的工作流程基本上都是接到新版本的需求写新页面修改接口和业务逻辑,非常乏味。
持续性的重复劳动,让笔者意识到一个问题:如果只会Android开发,能做的事情非常有限!例如,自己写一个App,如果没有可供调用的API,那么只能得到一个单机的App。因为自己对后台相关的技术一窍不通,平时根本不用去了解这方面的知识,只要给后台发出请求,然后解析数据,显示到页面上就好。
笔者开始琢磨花点时间去学习后台开发的知识,候选方案有Java、Kotlin、Python、PHP和Go。因为之前接触过Python,加上笔者只是想写一个给自己的App调用的API,所以最后选择了Python这门对初学者非常友好的编程语言。
笔者花了一周多的时间把Python的基本语法研究了一遍,发现Python语法简单、代码简洁。正当笔者准备去看Flask这个轻量级Python Web框架的文档时,问题来了:没有数据源。数据源都没有,写什么API?于是,笔者把学习重心转移到Python爬虫编写上。
这仿佛打开了新的大门,简单的几行代码就完成了站点模拟请求、页面解析,还把图片下载到了本地。接下来,笔者又开始研究如何提高爬取效率、解析效率,以及采用多样化的数据存储形式。后来发现有些站点有反爬虫的策略,得不到数据,于是笔者又对此进行研究。爬虫学得差不多了,笔者又开始研究数据分析,分析爬取的结果,得出一些有用的结论,如分析招聘网站上某个工作岗位的行情等。
笔者相信掌握Python爬虫,会为你的工作、生活带来一些意想不到的便利。因笔者能力和成书时间所限,书中难免会有纰漏,相关代码也不是尽善尽美,希望读者批评指正,笔者将感激不尽。
本书特色
(1)清晰的学习路线,让读者少走弯路。
(2)精练的知识点讲解,只学重要的、核心的内容,不拖泥带水。
(3)简单而经典的实战案例讲解,让读者快速上手,举一反三。
(4)代码注释详尽,适时解答常见问题。
本书读者对象
? 想要学习Python编程的人员。
? 有Python编程基础、想进阶的人员。
? 各计算机、软件专业的在校学生。
? 其他对Python爬虫感兴趣的读者。
|
|