零基础学Python网络爬虫案例实战 全流程详解 入门与提高篇
零基础学Python网络爬虫案例实战 全流程详解 高级进阶篇
本书讲解了Python爬虫技术的高级进阶知识,帮助有一定爬虫基础的读者进一步提高爬虫技术。本书详解了突破反爬机制的常用手段以及Scrapy和Flask两大商业级框架,并囊括了30个爬虫实战案例,包含2800余行代码,涉及10个网站和App的数据爬取。
网络爬虫是当今获取数据不可或缺的重要手段。本书讲解了Python爬虫的进阶理论与技术,帮助读者提升实战水平。
全书共7章。
第1~3章为常见反爬机制的应对手段,主要内容包括Cookie模拟登录、多种类型的验证码识别、Ajax动态请求破解。
第4章为手机App内容爬取。
第5章和第6章为Scrapy爬虫框架应用。
第7章为爬虫云服务器部署。
本书适合有一定Python网络爬虫编程基础的学生或相关从业人员,以及想要在Python网络爬虫开发、不同类型的反爬机制应对、爬虫框架开发、爬虫云端部署等方面进阶提高的读者。
王宇韬
(CFA、FRM、AQF)
华能贵诚信托金融科技实验室发起人,宾夕法尼亚大学硕士,上海交通大学学士,曾在剑桥大学交流学习,两年内通过CFA 3级、FRM 2级、AQF。在华能贵诚信托自主研发了舆情监控系统、资金雷达、流程自动化AI系统、机器视频面试系统等;专注于科技在金融领域的应用,编著有《Python金融大数据挖掘与分析全流程详解》和《Python大数据分析与机器学习商业案例实战》。
吴子湛
毕业于合肥工业大学计算机学院,就职于南京市秦淮区大数据中心,拥有多年IT
研发经验,擅长大数据分析与挖掘。
前言
本书学习资源
第1章 Cookie模拟登录
1.1 Cookie模拟登录的原理 11
1.1.1 客户端与服务端 11
1.1.2 HTTP的无状态性 12
1.1.3 Cookie的含义与作用 13
1.1.4 Session的含义与作用 16
1.1.5 Cookie与Session的交互 17
1.2 案例实战1:模拟登录淘宝并爬取数据 20
1.2.1 获取Cookie模拟登录淘宝 20
1.2.2 爬取淘宝商品数据 25
1.3 案例实战2:模拟登录新浪微博并爬取数据 29
1.3.1 获取Cookie模拟登录新浪微博 30
1.3.2 爬取新浪微博热搜榜信息 34
★ 课后习题 38
第2章 验证码反爬的应对
2.1 图像验证码 39
2.1.1 超级鹰平台注册 40
2.1.2 超级鹰Python接口的使用 41
2.1.3 案例实战:英文验证码和中文验证码识别 46
2.2 计算题验证码 51
2.3 滑块验证码 54
2.4 滑动拼图验证码 57
2.4.1 初级版滑动拼图验证码 59
2.4.2 高级版滑动拼图验证码 63
2.5 点选验证码 68
2.5.1 本地网页识别 69
2.5.2 bilibili点选验证码识别初探 75
2.5.3 bilibili点选验证码识别升级:无限尝试版 80
★ 课后习题 85
第3章 Ajax动态请求破解
3.1 Ajax简介 86
3.1.1 不同的网页翻页方式的对比 86
3.1.2 Ajax的基本概念与工作原理 88
3.2 案例实战1:爬取开源中国博客频道 89
3.2.1 分析Ajax请求 89
3.2.2 爬取单页博客 92
3.2.3 爬取多页博客 96
3.3 案例实战2:爬取新浪微博 98
3.3.1 模拟登录新浪微博 100
3.3.2 分析单个微博页面 101
3.3.3 破解Ajax请求爬取多页 103
★ 课后习题 108
第4章 手机App内容爬取
4.1 相关软件安装 109
4.1.1 安装夜神模拟器 110
4.1.2 安装Node.js 111
4.1.3 安装JDK 113
4.1.4 安装Android Studio 117
4.1.5 安装Appium 118
4.1.6 安装Appium-Python-Client库 118
4.2 手机模拟操作初步尝试 119
4.2.1 用Android Studio连接夜神模拟器 119
4.2.2 用Python连接微信App 121
4.3 Appium基本操作与进阶操作 123
4.3.1 Appium基本操作 123
4.3.2 Appium进阶操作 126
4.4 案例实战:爬取微信朋友圈内容 132
4.4.1 获取微信朋友圈页面源代码 133
4.4.2 提取微信朋友圈内容 135
4.5 多开模拟器打开多个微信 138
4.5.1 多开模拟器 138
4.5.2 用Appium连接多个模拟器 139
★ 课后习题 143
第5章 Scrapy爬虫框架
5.1 Scrapy框架基础 144
5.1.1 Scrapy的安装方法 144
5.1.2 Scrapy的整体架构 146
5.1.3 Scrapy的常用指令 148
5.2 案例实战1:百度新闻爬取 156
5.2.1 Robots协议破解 157
5.2.2 User-Agent设置 158
5.2.3 百度新闻标题爬取 159
5.3 案例实战2:新浪新闻爬取 160
5.3.1 实体文件设置 161
5.3.2 新浪新闻爬取:爬取一条新闻 162
5.3.3 新浪新闻爬取:爬取多条新闻 166
5.3.4 新浪新闻爬取:生成文本文件报告 167
5.4 案例实战3:豆瓣电影海报图片爬取 170
5.4.1 用常规方法爬取 170
5.4.2 用Scrapy爬取 171
5.5 知识拓展:Python类的相关知识 176
5.5.1 类和对象的概念 176
5.5.2 类名、属性和方法 176
5.5.3 类的进阶知识 179
★ 课后习题 182
第6章 Scrapy应对反爬
6.1 中间件技术概述 183
6.1.1 下载器中间件 184
6.1.2 爬虫中间件 184
6.2 Scrapy IP代理:爬取搜狗图片 185
6.2.1 用Requests库批量下载图片 186
6.2.2 用Scrapy框架批量下载图片 198
6.3 Scrapy Cookie:模拟登录淘宝 202
6.3.1 在中间件文件中添加Cookie 202
6.3.2 编写并运行爬虫文件:爬取淘宝网页 204
6.4 Scrapy Selenium库:爬取财经新闻 206
6.4.1 在中间件文件中添加Selenium库 207
6.4.2 编写并运行爬虫文件:爬取新闻信息 209
★ 课后习题 214
第7章 爬虫云服务器部署
7.1 HTML网页制作进阶 215
7.1.1 表格 217
7.1.2 列表 218
7.1.3 样式设计 220
7.1.4 背景设置 228
7.2 Flask Web编程基础 232
7.2.1 Flask入门 232
7.2.2 用render_template()函数渲染页面 237
7.2.3 用Flask连接数据库 242
7.3 Flask Web编程实战 247
7.3.1 展示单家公司的数据 247
7.3.2 展示多家公司的数据 252
7.3.3 展示舆情评分 255
7.3.4 只展示当天新闻 257
7.3.5 只展示负面新闻 258
7.4 云服务器的购买和登录 261
7.5 程序云端部署及网站搭建 265
7.5.1 搭建程序的运行环境 265
7.5.2 程序24小时运行及Flask项目部署 266
7.5.3 域名申请和使用 267
★ 课后习题 270
笔者编写的《Python金融大数据挖掘与分析全流程详解》于2019年出版面市后,陆续有不少读者表示对该书的爬虫部分非常感兴趣,想做进一步的学习。笔者由此萌生了一个想法:专门针对Python爬虫技术编写一套书籍,在保留之前核心内容的基础上,新增更多实战案例,方便读者在练中学,并体会Python爬虫在实战中的应用。
书稿编写完成后,为了更好地满足不同水平读者的需求,方便他们根据自身情况更灵活地学习,笔者决定将书稿分为两册出版:册为《零基础学Python网络爬虫案例实战全流程详解(入门与提高篇)》,主要针对编程零基础的读者;第二册为《零基础学Python网络爬虫案例实战全流程详解(高级进阶篇)》,主要针对有一定Python爬虫编程基础并且需要进阶提高的读者。
本书为《零基础学Python网络爬虫案例实战全流程详解(高级进阶篇)》,分7章讲解了Python爬虫的进阶理论与技术,包括常见反爬机制的应对手段、手机App内容爬取、Scrapy爬虫框架应用、爬虫云服务器部署等。
第1章主要讲解如何通过Cookie模拟登录网站并爬取数据。首先介绍Cookie模拟登录的原理,然后通过模拟登录淘宝爬取商品数据、模拟登录新浪微博爬取热搜榜信息这两个实战案例来巩固所学。