首页 > 编程知识 正文

爬虫数据分析实例,python爬虫可视化

时间:2023-05-04 19:37:41 阅读:251556 作者:3946

前言

第1章 Python编程基础1

1.1 搭建Python开发环境1

1.1.1 安装Python解释器1

1.1.2 安装Python第三方开发包2

1.1.3 在PyCharm里新建项目和文件3

1.1.4 在PyCharm里更换Python解释器5

1.2 实践Python基本语法5

1.2.1 针对基本数据类型的操作6

1.2.2 针对字符串的操作7

1.2.3 多行注释与引入中文8

1.2.4 条件分支语句9

1.2.5 循环操作语句9

1.2.6 break和continue的用法10

1.2.7 格式化输出语句11

1.3 定义和调用函数11

1.4 return的重要性——函数的递归调用12

1.5 熟悉函数的特殊写法13

1.5.1 函数作为参数14

1.5.2 函数作为返回结果14

1.5.3 匿名函数15

1.6 本章小结15

第2章 Python的数据结构16

2.1 列表16

2.1.1 定义列表16

2.1.2 在列表中增、删、改元素17

2.1.3 列表的切片操作18

2.1.4 遍历列表19

2.1.5 列表的常见用法19

2.2 元组20

2.2.1 创建和使用元组20

2.2.2 元组的常见用法21

2.3 集合22

2.3.1 创建和使用集合22

2.3.2 针对集合的常用数据操作23

2.4 字典23

2.4.1 创建和使用字典24

2.4.2 增加、删除和修改字典中的元素24

2.4.3 遍历字典25

2.5 针对数据结构的通用性操作25

2.5.1 通过map方法实现序列的映射25

2.5.2 filter方法与数据筛选26

2.5.3 通过reduce方法实现累计效果27

2.5.4 通过sorted方法排序对象27

2.6 本章小结28

第3章 Python面向对象编程29

3.1 什么是面向对象思想29

3.2 封装特性30

3.2.1 创建类并在类里封装属性和方法30

3.2.2 类方法的第一个参数必须指向实例31

3.2.3 私有属性的典型错误用法31

3.2.4 了解其他常用魔术方法33

3.2.5 从私有属性和私有方法体会封装特性34

3.3 继承特性35

3.3.1 继承的语法和使用场景35

3.3.2 子类无法使用父类的私有属性和方法36

3.3.3 受保护的属性和方法37

3.3.4 多重继承与组合模式38

3.4 多态特性40

3.4.1 以迭代器为例来理解多态40

3.4.2 可变参数与方法重载41

3.4.3 整合使用多态和继承42

3.5 模块、包以及第三方库43

3.5.1 通过import重用现有模块中的功能43

3.5.2 自定义包和使用包43

3.5.3 引入并使用第三方库44

3.6 本章小结45

第4章 异常处理机制与文件读写46

4.1 通过try…except…finally处理异常46

4.1.1 处理异常的try…except从句46

4.1.2 使用异常处理类47

4.1.3 同时处理多个异常48

4.1.4 在处理异常时引入else代码块49

4.1.5 引入finally从句50

4.2 raise与except的整合使用51

4.2.1 通过raise抛出异常51

4.2.2 自定义异常且与except整合使用51

4.3 异常处理的实践经验52

4.3.1 尽可能缩小try的代码块53

4.3.2 用专业的异常处理类针对性地处理异常53

4.3.3 拿到异常别忽视54

4.3.4 合理确定异常的影响范围54

4.4 在读写文件案例中使用异常机制55

4.4.1 通过os.path获取目录和文件属性55

4.4.2 以只读模式打开文件56

4.4.3 逐行读取文件58

4.4.4 通过write写文件59

4.4.5 以添加的方式写文件59

4.4.6 读写csv文件60

4.5 本章小结61

第5章 NumPy数组处理62

5.1 NumPy库的基础数据结构:ndarray对象62

5.1.1 通过array方法创建ndarray62

5.1.2 ndarray的dtype属性63

5.1.3 创建全0或全1的ndarray64

5.2 NumPy库的常用操作65

5.2.1 通过arange方法创建序列数组65

5.2.2 针对ndarray的数学运算66

5.2.3 常用的科学计算函数67

5.2.4 常用的聚合统计函数68

5.2.5 遍历ndarray数组69

5.3 针对ndarray的索引和切片操作69

5.3.1 索引操作69

5.3.2 布尔索引与条件过滤70

5.3.3 切片操作与共享内存70

5.3.4 通过copy函数创建副本72

5.4 本章小结72

第6章 Pandas数据清洗73

6.1 以一维方式存储数据的Series对象73

6.1.1 Series的常规操作74

6.1.2 创建并使用Series索引75

6.1.3 获取Series里的切片数据76

6.1.4 通过布尔Series获取满足条件的元素78

6.1.5 遍历Series数据78

6.2 以表格格式存储数据的DataFrame对象79

6.2.1 DataFrame对象的常规用法79

6.2.2 通过loc、iloc和ix提取数据81

6.2.3 遍历DataFrame里的数据82

6.3 面向DataFrame的常用数据分析方法82

6.3.1 对DataFrame数据进行排序83

6.3.2 以列为单位进行运算83

6.3.3 增加和删除列84

6.3.4 过滤和重设数据85

6.3.5 在DataFrame中进行数据统计分析85

6.3.6 衡量变量间关联程度的corr方法86

6.4 Pandas与各类文件的交互87

6.4.1 DataFrame数据与csv文件的相互转换87

6.4.2 NaN与缺失值处理89

6.4.3 DataFrame数据与Excel文件的相互转换90

6.4.4 DataFrame数据与json文件的相互转换91

6.5 本章小结92

第7章 Matplotlib数据可视化93

7.1 通过Matplotlib绘制各类图形93

7.1.1 绘制折线图93

7.1.2 绘图时的通用属性参数94

7.1.3 绘制柱状图95

7.1.4 绘制饼图97

7.1.5 绘制直方图98

7.2 设置坐标的技巧99

7.2.1 设置x和y坐标标签文字并展示中文99

7.2.2 设置坐标的范围100

7.2.3 设置坐标的主刻度和次刻度101

7.2.4 设置并旋转坐标刻度文字102

7.3 增加可视化美观效果103

7.3.1 设置图例104

7.3.2 设置中文标题105

7.3.3 设置网格效果106

7.4 设置多图和子图效果107

7.4.1 通过figure对象同时绘制多张图107

7.4.2 通过add_subplot方法绘制子图108

7.4.3 通过subplot方法绘制子图109

7.4.4 子图共享x坐标轴110

7.4.5 在大图里绘制子图112

7.5 绘制高级图表113

7.5.1 绘制散点图113

7.5.2 绘制热图114

7.5.3 绘制等值线图115

7.6 通过mplot3d绘制三维图形116

7.6.1 绘制三维曲线图116

7.6.2 绘制三维散点图117

7.6.3 绘制三维柱状图118

7.7 本章小结119

第8章 通过网络爬虫获取数据120

8.1 和爬虫有关的HTTP120

8.1.1 基于HTTP的请求处理流程120

8.1.2 HTTP请求头包含操作系统和浏览器信息122

8.1.3 Post和Get请求方法122

8.1.4 HTTP常见的状态码122

8.2 通过Urllib库获取网页信息123

8.2.1 通过request爬取网页123

8.2.2 设置超时时间124

8.2.3 用URLError处理网络异常124

8.2.4 设置header属性来模拟浏览器发送请求125

8.3 通过BeautifulSoup提取页面信息125

8.3.1 安装BeautifulSoup库125

8.3.2 用Tag提取HTML元素和属性126

8.3.3 用NavigableString提取元素值127

8.3.4 用Comment提取注释127

8.3.5 制定规则搜索指定的内容128

8.4 通过正则表达式截取信息130

8.4.1 查找指定字符串130

8.4.2 用通用字符来模糊匹配130

8.4.3 通过原子表来定义匹配规则131

8.4.4 用findall按匹配规则截取内容132

8.5 用Scrapy爬取博客园文章信息134

8.5.1 通过Scrapy命令创建爬虫项目134

8.5.2 明确爬取目标,制定爬取规则134

8.5.3 在Item模块里定义数据模型136

8.5.4 生成爬虫文件,定义爬取动作136

8.5.5 在pipelines文件里定义数据存储方式137

8.5.6 启动爬虫程序,观察运行效果138

8.6 本章小结139

第9章 数据分析的常用方法140

9.1 准备并存储数据140

9.1.1 用Pandas_datareader库获取数据140

9.1.2 以csv和Excel格式存储数据141

9.1.3 准备MySQL环境142

9.1.4 在MySQL里存储数据142

9.1.5 从数据表里读取数据145

9.2 描述性统计146

9.2.1 平均数、中位数和百分位数146

9.2.2 用箱状图展示分位数147

9.2.3 统计极差、方差和标准差148

9.3 基于时间序列的统计方法148

9.3.1 用rolling方法计算移动平均值148

9.3.2 基于时间序列的自相关性分析149

9.3.3 基于时间序列的偏自相关性分析151

9.3.4 用热力图分析不同时间序列的相关性152

9.4 概率分析方法与推断统计154

9.4.1 分析收盘价,绘制小提琴图154

9.4.2 用直方图来拟合正态分布效果155

9.4.3 验证序列是否满足正态分布156

9.4.4 参数估计方法157

9.4.5 显著性验证158

9.5 回归分析方法159

9.5.1 构建一元线性回归模型159

9.5.2 以多元线性回归模型预测股价162

9.6 本章小结164

第10章 案例:图书信息的爬取、数据清洗与分词处理165

10.1 用Scrapy框架爬取豆瓣网编程图书165

10.1.1 准备知识:yield的含义165

10.1.2 明确待爬取的目标,创建Scrapy项目166

10.1.3 定义图书的数据模型167

10.1.4 分析页面结构,实现爬虫功能167

10.1.5 存为csv文件171

10.1.6 运行爬虫,观察结果172

10.2 分析图书数据,绘制可视化图表172

10.2.1 用Pandas库的方法清洗数据172

10.2.2 出版社出书情况分析173

10.2.3 评论数最多和最贵的3本图书175

10.2.4 用直方图绘制评分频次177

10.2.5 对书名分词,绘制词云178

10.3 本章小结179

第11章 案例:二手房数据的爬取、清洗与可视化180

11.1 用Scrapy框架爬取二手房数据180

11.1.1 明确爬取目标,创建Scrapy项目180

11.1.2 定义二手房数据模型181

11.1.3 分析页面结构,实现爬虫功能181

11.1.4 定义pipelines逻辑,把数据存为json文件185

11.1.5 运行爬虫程序,把数据存为json格式186

11.2 分析二手房数据186

11.2.1 清洗数据186

11.2.2 对数据进行基本的分析187

11.2.3 观察均价和总价的分布情况189

11.2.4 用散点图展示关注度与价格、面积的关系190

11.2.5 绘制关于二手房标题和地段的词云192

11.3 本章小结194

第12章 案例:股票数据分析与可视化195

12.1 股市指标的分析与可视化195

12.1.1 准备股票交易数据195

12.1.2 用Matplotlib绘制K线图196

12.1.3 用rolling和mean绘制均线198

12.1.4 用柱状图描述成交量199

12.1.5 加工DataFrame数据,绘制MACD图201

12.1.6 绘制CCI图,进一步熟悉DataFrame204

12.2 验证常见的股市交易策略206

12.2.1 验证基于长短均线的交易策略207

12.2.2 验证基于MACD指标的交易策略209

12.2.3 验证基于CCI的交易策略211

12.3 绘制价格通道212

12.3.1 计算并绘制唐奇安通道213

12.3.2 计算并绘制布林带通道214

12.3.3 计算并绘制鳄鱼组线216

12.4 用机器学习方法预测股票219

12.4.1 用Lasso和岭回归拟合预测收盘价219

12.4.2 用SVM和KNN模型预测涨跌221

12.5 本章小结224

第13章 基于机器学习算法的数据分析225

13.1 数据集与机器学习的基础知识225

13.1.1 获取sklearn提供的数据集225

13.1.2 训练集、验证集和测试集226

13.2 一元和多元线性回归案例227

13.2.1 波士顿房价数据集的初步分析227

13.2.2 构建波士顿房价的多元线性关系230

13.2.3 交叉验证的思想及其实现231

13.3 岭回归、Lasso回归及案例233

13.3.1 对比线性回归和岭回归233

13.3.2 基于岭回归拟合波士顿房价235

13.3.3 Lasso回归236

13.4 分类算法案例237

13.4.1 基于线性和可靠的香烟内核的SVM分类器238

13.4.2 用SVM分类器划分鸢尾花240

13.4.3 基于KNN算法的分类器243

13.4.4 KNN分类器对酒的分类244

13.4.5 基于逻辑回归的分类方法245

13.4.6 用逻辑回归划分鸢尾花246

13.5 基于手写体数字识别的分类案例248

13.5.1 观察Digits数据集248

13.5.2 以训练集和测试集的方式评估结果249

13.5.3 对比分类模型的预测和真实结果250

13.6 本章小结252

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。