数据采集篇
第1章 数据采集的发展历程
1.1 数据的发展史
1.1.1 数据的由来
1.1.2 数据的体量变化
1.1.3 数据的种类
1.2 数据采集的发展
1.2.1 数据采集-爬虫的概述
1.2.2 数据采集的作用
1.2.3 数据采集的方式
1.2.4 数据采集的分类
1.2.5 数据采集的工具
1.2.6 数据采集相关的环境和库
1.2.7 数据采集的流程原理
第2章 数据采集之HTTP
2.1 HTTP和HTTPS协议
2.1.1 HTTP协议
2.1.2 HTTPS协议
2.2 请求报文详解
2.2.1 请求报文的格式
2.2.2 请求报文常见请求头
2.2.3 Cookie的作用
2.3 请求报文详解
2.3.1 请求报文的格式
2.3.2 请求报文常见请求头
2.4 响应报文详解
2.4.1 响应报文的格式
2.4.2 响应报文常见响应头
2.5 响应状态码
2.5.1 响应状态码的作用
2.5.2 常见的响应状态码
第3章 Python自带的urllib
3.1 urllib
3.1.1 urllib的作用
3.1.2 urllib的基本使用
3.1.3 urllib的高阶爬取
3.2 urllib2
3.2.1 urllib2的使用
3.3 urllib3
3.3.1 urllib3的使用
第4章Reuqests库
4.1 Requests模块概述
4.1.1Requests模块介绍
4.1.2Requests模块的作用
4.2 Reuqests模块基本使用
4.2.1 Requests模块安装
4.2.2 Requests模块发送GET请求
4.2.3 Response响应对象解析
4.3 Get函数的参数使用
4.3.1携带headers
4.3.2反爬首项User-Agent
4.3.3 Cookies解析
4.3.4 CookieJar的使用
4.3.5 TimeOut超时参数
4.6 代理IP和忽略证书
4.6.1 代理机制介绍
4.6.2 代理IP种类
4.6.3 代理proxies使用
4.6.4 忽略CA证书
4.7 Requests模块发送post请求
4.7.1 分析案例参数
4.7.2 案例实现post请求
4.8 Requests模块Session使用
4.8.1分析Github案例
4.8.2解析相关参数
4.8.3使用session模拟登录
第5章 数据清洗
5.1 清洗概述
5.1.1 结构化和非结构化数据
5.1.2 数据清洗的方法介绍
5.2 JSON数据清洗
5.2.1 Json解析json数据
5.3 正则 数据清洗
5.3.1 正则表达式概述
5.3.2 re模块的基本使用
5.3.3 正则清洗爬取的数据
5.4 HTML和XML 数据清洗
5.4.1了解lxml和xpath
5.4.2Xpath插件安装
5.4.3Xpath基本语法
5.4.4 Lxml模块的使用
第6章 动态数据采集
6.1 Selenium概述
6.1.1 Selenium的作用
6.1.2 Selenium的使用流程
6.1.3 Selenium的爬取原理
6.2 Selenium的下载和安装
6.2.1 Driver安装
6.2.2 Driver的加载
6.2.3 Selenium-python库安装
6.3 Selenium的简单使用
6.3.1 Selenium发送请求
6.3.2 Selenium解析响应Selenium
6.3.3 Selenium解析标签
6.3.4 Selenium退出
6.4 Driver对象的常用属性
6.4.1 Page_source属性
6.4.2 Current_url属性
6.4.3 Screen_shot截取屏幕
6.5 Driver对象定位标签
6.5.1 By 方法定位
6.5.2 提取文本内容和属性
6.6 斗鱼案例
6.6.1斗鱼首页直播间分析
6.6.2 斗鱼直播间xpath解析
6.6.3 斗鱼直播间Selenium爬取
第7章 反爬和反反爬方案
7.1常见反爬和反反爬策略
7.1.1 常见反爬
7.1.2 非常规反爬
7.2打码平台介绍
7.2.1云打码
7.2.2 极验验证码
7.3打码平台的使用
7.3.1打码平台注册-配置
7.3.2打码平台的调用和封装
7.4 JS逆向
7.4.1 JS代码定位
7.4.2 JS代码解析
7.4.3 JS代码模拟实现
第8章 Scrapy爬虫框架
8.1Scrapy的概念
8.1.1 Scrapy的作用
8.1.2 Scrapy的优缺点
8.2 Scrapy的架构
- 8.2.1 scrapy的架构组成
8.3 Scrapy项目实现流程
8.3.1创建项目
8.3.2生成爬虫
8.3.3 提取数据
8.3.4 保存数据pipeline
8.3.5 运行scrapy爬虫
8.4 解析数据额和响应对象
8.4.1 Response.xpath解析数据
8.4.2 Extract() 抽取数据
8.4.3 Pipeline中process_item
8.4.4 Response属性获取
8.5 Scrapy构造请求对象
8.5.1 Scrapy的Request的使用
8.5.2 Scrapy的Meta使用
8.5.3 Scrapy的Iitem的使用
8.6 Scrapy模拟登录
8.6.1 重构start_requests方法
8.6.2 Scrapy携带Cookie
8.6.3 Scrapy构建POST方法
8.7 Scrapy管道的使用
8.7.1 Pipeline常用方法
8.7.2 管道文件修改
8.7.3 开启管道Pipeline
8.8 MiddleWare中间件基本使用
8.8,1 Middleware的使用场景
8.8.2 MiddleWare添加User-Agent
8.8.3 MiddleWare添加Proxy
8.9 自定义MiddleWare中间件
8.9.1 使用Selenium自定义中间件
8.10 Scrapy日志
8.10.1 查看运行日志信息
8.11 Scrapy常用配置
8.11.1设置常用配置
第9章分布式爬取
9.1 分布式和集群
9.1.1 什么是分布式
9.1.2 什么是集群
9.2 Scrapy_Redis作用
9.2.1分布式爬取
9.2.2断点续爬
9.3 Scrapy_Redis的工作流程
9.3.1 Scrapy_Redis 架构组成
9.3.3 Scrapy_Redis的调度流程
9.4 DMOZ案例准备
9.4.1 Github下载DMOZ案例源码
9.4.2 观察DMOZ案例实现
9.5 DMOZ案例执行
9.5.1 Spider版dmoz执行
9.5.2 CrawlSpider版dmoz执行
9.5.3 分布式版dmoz执行
第10章 爬虫部署
10.1 scrapyd部署
10.1.1 scrpayd的安装
10.1.2 scrpayd 的部署