Python3爬虫实战——数据清洗、数据分析与可视化

《Python3爬虫实战——数据清洗、数据分析与可视化》

  • 出版社:中国铁道出版社
  • ISBN:9787113260590
  • 版次:1
  • 商品编码:12700670
  • 品牌:中国铁道出版社
  • 包装:平装
  • 开本:16开
  • 出版时间:2019-10-01
  • 用纸:胶版纸
  • 页数:268
基本介绍书籍目录点评信息
  • 书籍内容

    作为一个自学爬虫的过来人,曾经走过很多弯路,在自学的道路上也迷茫过。每次面对一个全新的网站,都像是踏进一个未知的世界。你不知道前面有哪些反爬手段在等着你;你不知道你会踩进哪个坑里。我做爬虫的几年时间里,爬过很多的网站、遇到过很多的难题。这本书就是我这几年经验的总结,从开始的工具的学习使用,到实战项目的爬取,难度一步一步的升级,需求也越来越复杂,有各式各样的爬取方式。
    本书主要内容与数据爬取相关,包括编写爬虫所需要的基础编程知识,如Requests包、Scrapy框架和数据库的使用,到项目实战教程,适合Python基础入门的读者。如果你是其他行业的从业者,想进入IT行业成为一位爬虫工程师,又或者你已经是IT行业的从业者,本书在能够让你在对爬虫工程师的工作内容有所了解的同时,也能让你掌握作为一个爬虫工程师所需要具备的基础技能。

    编辑推荐

    1.从零开始,适合新手学习
    对于只有代码入门基础的新手来说,看文档学习使用工具是十分困难的一件事。因为对代码的不理解、没有编程思维,看文档简直就像是在看天书。另外大部分的新文档都是英文版的,国内的中文文档都是翻译过来的,在翻译过程中容易产生偏差。而本书基础知识篇中,从各官方文档中直接整理出爬虫爬取需要用到的部分。没有繁杂啰唆的文字,用简单的语言告诉你学习的重点知识,让你快速上手爬虫。在实战阶段,详细介绍每一个步骤,便于理解,让你也能靠自己写出爬虫。
    2.实例丰富,解决各种爬虫问题
    网上很多爬虫的各种教程,大部分都是爬取豆瓣电影、招聘网站职位进行分析。本书实战项目挑选的都是网上少有人爬取的网站,让你可以学习到各式各样的爬取方式。
    3.站得更高,设计自己的产品
    本书除了教你如何爬取网站外,还有很多以爬虫为基础的多功能设计教程,如爬虫机器人、爬虫网站、爬虫搜索功能。让你在学会爬取技术的同时,形成产品的思维去设计自己的产品。

    作者简介

    姚良 2016-2019 深圳丝路天地电子商务有限公司 爬虫工程师。熟练使用Python语法,面向对象编程,JS破解、分布式爬虫、Scrapy框架、Requests库、Redis、Mongodb、高并发、异步编程。
  • 第一篇 基础知识
    第1章 Python环境搭建
    1.1 Python的安装 2
    1.1.1 Windows下Python的安装 2
    1.1.2 Mac OS X下Python的安装 3
    1.1.3 Linux下Python的安装 3
    1.1.4 安装pip工具 4
    1.2 虚拟环境Virtualenv 5
    1.2.1 Virtualenv的安装 5
    1.2.2 创建虚拟环境 5
    1.2.3 激活虚拟环境 5
    1.2.4 创建指定Python版本的虚拟环境 5
    1.3 选择合适的编辑器 6
    1.3.1 Vim 6
    1.3.2 Atom 6
    1.3.3 Sublime Text 6
    1.3.4 Notepad++ 6
    1.3.5 Pycharm 6
    第2章 常用爬虫库Requests
    2.1 安装Requests 7
    2.1.1 用pip安装 7
    2.1.2 用github源码安装 7
    2.1.3 用curl安装 7
    2.2 了解 Requests的功能 8
    2.2.1 使用GET和POST发送请求 8
    2.2.2 通过URL传递参数 9
    2.2.3 设置超时 9
    2.2.4 查看返回内容 9
    2.2.5 设置请求头 10
    2.2.6 更多复杂的Post请求 10
    2.2.7 返回对象状态码 12
    2.2.8 设置代理IP 13
    2.3 BeautifulSoup的安装和使用 14
    2.3.1 使用pip安装BeautifulSoup 14
    2.3.2 使用BeautifulSoup定位元素 14
    2.4 初识自动化测试工具Selenium 15
    2.4.1 Selenium安装 15
    2.4.2 使用Selnium爬取网站 15
    2.5 Selenium定位元素 16
    2.5.1 通过属性定位 17
    2.5.2 通过xpath定位 17
    2.6 Selenium反爬设置 18
    2.6.1 设置请求头 18
    2.6.2 设置代理IP 19
    第3章 常用爬虫框架Scrapy
    3.1 认识Scrapy 21
    3.1.1 Scrapy爬取quotes简单示例 21
    3.1.2 安装所需依赖包 23
    3.1.3 使用虚拟环境 23
    3.2 Scrapy shell的使用 24
    3.2.1 运行shell 24
    3.2.2 使用Scrapy shell爬取Scrapy.org 24
    3.2.3 爬虫调用shell 26
    3.3 使用Scrapy爬取quotes 26
    3.3.1 创建Scrapy项目并新建爬虫 27
    3.3.2 爬取和提取数据 27
    3.3.3 通过脚本运行Scrapy爬虫 29
    3.3.4 在同一进程下运行多个爬虫 29
    3.3.5 简易的分布式爬虫思路 30
    3.3.6 防止爬虫被ban 31
    3.4 setting基本配置 31
    3.5 Pipeline模块 32
    3.5.1 爬取文字板块 32
    3.5.2 编写Pipeline模块 35
    3.5.3 通过Pipeline将数据写入MongoDB数据库 36
    3.5.4 ImagesPipeline处理图片 37
    3.5.5 FilePipeline下载文件 40
    3.6 Middleware中间件 41
    3.6.1 Downloader Middleware 41
    3.6.2 随机请求头中间件 42
    3.6.3 更换代理IP中间件 45
    3.6.4 通过Downloader Middleware使用Selenium 46
    3.6.5 Spider Middleware 47
    3.7 新功能拓展 48
    3.7.1 信号signals 48
    3.7.2 自定义拓展 51
    第4章 数据存储——数据库的选择
    4.1 MySQL数据库 53
    4.1.1 MySQL的安装 53
    4.1.2 几款可视化工具 54
    4.1.3 数据库连接 55
    4.1.4 数据库插入操作 55
    4.1.5 数据库查询 56
    4.1.6 数据库更新操作 56
    4.1.7 爬取写入数据库 57
    4.2 MongoDB数据库 58
    4.2.1 MongoDB安装 58
    4.2.2 连接数据库 59
    4.2.3 查询数据库 59
    4.2.4 插入和更新数据库 59
    4.2.5 爬取数据并插入到MongoDB数据库中 60
    4.3 Redis数据库 60
    4.3.1 Redis安装 60
    4.3.2 连接Redis数据库 61
    4.3.3 Python操作Redis数据库 61
    4.3.4 爬取并写入Redis做缓存 62
    第5章 效率为王——分布式爬虫
    5.1 什么是分布式爬虫 64
    5.1.1 分布式爬虫的效率 64
    5.1.2 实现分布式的方法 64
    5.2 Celery 65
    5.2.1 Celery入门 65
    5.2.2 Celery分布式爬虫 66
    5.3 使用Scrapy-redis的分布式爬虫 67
    5.3.1 Scrapy-redis安装与入门 67
    5.3.2 创建Scrapy-redis爬虫项目 68
    第6章 抓包的使用与分析
    6.1 利用抓包分析目标网站 72
    6.1.1 如何抓包 72
    6.1.2 网页抓包分析 72
    6.2 手机APP抓包 74
    6.2.1 使用fiddler抓包 75
    6.2.2 HTTPS证书安装 75
    6.2.3 booking手机端抓包 76
    第7章 Websocket通信网站爬取
    7.1 什么是Websocket 79
    7.1.1 Websocket-clinet 79
    7.1.2 Websocket-clinet简单入门 79
    7.2 使用Websocket爬取财经网站 81
    第8章 验证码破解
    8.1 关于验证码 84
    8.1.1 一般的验证码 84
    8.1.2 极验验证 84
    8.2 极验滑动验证破解 85
    8.2.1 准备工具 85
    8.2.2 分析滑动验证码 85
    8.2.3 开始破解极限滑动验证码 87
    8.3 图片验证码破解 89
    8.3.1 准备工具 89
    8.3.2 文字图像识别 89
    8.3.3 识别验证码 90
    第9章 多线程与多进程并发爬取
    9.1 多线程 92
    9.1.1 堵塞与非堵塞 92
    9.1.2 继承threading.Thread创建类 96
    9.1.3 多线程的锁 98
    9.1.4 queue队列 100
    9.1.5 线程池 101
    9.2 多线程爬虫 103
    9.2.1 爬虫框架 103
    9.2.2 编写爬虫 104
    9.2.3 以多线程方式启动 105
    9.3 多进程 107
    9.3.1 multiprocessing模块 107
    9.3.2 通过Pool进程池创建进程 108
    9.3.3 multiprocessing.Queue队列 109
    9.3.4 multiprocessing.Pipe管道 112
    9.3.5 multiprocessing.Lock锁 113
    9.4 多进程爬虫 114
    9.4.1 多进程爬取音频 114
    9.4.2 多进程加多线程进行爬取 116
    第10章 爬虫接口优化
    10.1 Gunicorn的安装与使用 119
    10.2 Gunicorn配置 121
    10.2.1 配置参数 121
    10.2.2 通过config文件启动 123
    第11章 使用Docker部署爬虫
    11.1 Docker 125
    11.1.1 Docker的安装 125
    11.1.2 Docker的镜像 125
    11.1.3 构建自己的Docker镜像 127
    11.1.4 容器使用 127
    11.1.5 Dockerfile 129
    11.2 爬虫部署 130
    11.2.1 爬虫接口 130
    11.2.2 部署爬虫接口 131
    第二篇 实战案例
    第12章 实战1:建立代理IP池
    12.1 爬取免费代理IP 136
    12.1.1 爬取代理IP 136
    12.1.2 检验代理IP 138
    12.2 建立代理IP池 138
    12.2.1 检验代理IP 138
    12.2.2 Redis消息队列 140
    12.2.3 master爬虫 142
    第13章 实战2:磁力链接搜索器
    13.1 爬取磁力搜索平台 145
    13.1.1 磁力平台 145
    13.1.2 slave爬虫 146
    13.2 实现磁力搜索器 148
    13.2.1 展示与交互 148
    13.2.2 数据查询 150
    第14章 实战3:爬虫管家
    14.1 QQ机器人 152
    14.1.1 qqbot 152
    14.1.2 基本操作 152
    14.1.3 实现自己的机器人 153
    14.2 爬虫监控机器人 153
    第15章 实战4:数据可视化
    15.1 可视化包Pyecharts 156
    15.1.1 Pyecharts的安装 156
    15.1.2 地图展示数据 157
    15.2 爬取最低价机票数据 158
    15.2.1 破解旅游网站价格日历接口 159
    15.2.2 爬取旅游网站 160
    15.2.3 将数据可视化 161
    第16章 实战5:爬取贴吧中的邮箱
    16.1 爬取网站 164
    16.1.1 爬取高校名单 164
    16.1.2 利用正则表达式匹配号码 165
    16.2 分析贴吧搜索页面并提取号码 165
    16.3 使用Scrapy开始编码 167
    16.3.1 创建贴吧Scrapy项目 167
    16.3.2 新建爬虫并编写爬虫逻辑 168
    16.3.3 数据处理 170
    第17章 实战6:批量爬取企业信息
    17.1 从第三方平台获取企业名 172
    17.2 如何爬取企业详细信息 174
    第18章 实战7:爬取公众号历史文章
    18.1 分析公众号接口 177
    18.1.1 开始抓包 177
    18.1.2 分析接口 179
    18.1.3 尝试请求数据 179
    18.2 爬取公众号 180
    18.2.1 爬取思路 180
    18.2.2 请求接口获取文章URL 180
    18.2.3 解析文章网页源码 181
    18.2.4 合并代码 183
    第19章 实战8:高效爬取——异步爬虫
    19.1 异步编程 186
    19.1.1 asyncio库 186
    19.1.2 aiohttp库 187
    19.1.3 访问多个URL 188
    19.2 爬取图片 189
    19.2.1 为函数命名 189
    19.2.2 对网页进行解析 190
    19.2.3 异步爬取图片 190
    第20章 实战9:爬取漫画网站
    20.1 爬取单部漫画 193
    20.1.1 单集漫画的爬取 193
    20.1.2 全集漫画的爬取 195
    20.2 爬取漫画全站 196
    第21章 实战10:给kindle推送爬取的小说
    21.1 用Python发送邮件 199
    21.1.1 纯文本邮件的发送 199
    21.1.2 带附件邮件的发送 200
    21.2 爬取小说 201
    21.2.1 制作word文档 201
    21.2.2 爬取baka-tsuki.org 202
    第22章 实战11:爬取游民星空壁纸
    22.1 星空壁纸的爬取准备 205
    22.2 爬取壁纸 206
    22.2.1 获取图片和下一页地址 206
    22.2.2 爬取列表页 208
    22.2.3 爬取高清图片资源 209
    第23章 综合实战:建立一个小网站
    23.1 Flask框架 210
    23.1.1 写一个简单的hello word网页 210
    23.1.2 添加html模板 210
    23.2 Bootstrap框架 212
    23.2.1 使用Bootstrap框架 213
    23.2.2 Bootstrap在线模板 213
    23.2.3 添加壁纸板块 215
    第24章 综合实战:爬取电影网站
    24.1 理清爬虫的思路 218
    24.2 分步编码实现爬取 219
    24.2.1 爬取详情页 219
    24.2.2 爬取列表页 220
    24.2.3 爬取首页 221
    24.2.4 写入数据库 222
    第25章 综合实战:建立电影小站
    25.1 搭建项目 224
    25.1.1 sqlite数据库 224
    25.1.2 创建项目 225
    25.1.3 通过蓝图建立电影板块 226
    25.2 建立模板 229
    25.2.1 flask-bootstrap 229
    25.2.2 电影页面 231
    25.2.3 电影分类 233
    25.2.4 电影详情页 237
    25.2.5 电影搜索页 239
    第26章 综合实战:磁力搜索
    26.1 磁力搜索 241
    26.1.1 如何高效爬取 241
    26.1.2 建立Celery任务 244
    26.2 Web部分 248
    26.2.1 建立模型 248
    26.2.2 视图函数 248
    26.2.3 关于产品 251
微信公众号

热门文章

更多