图书目录

目 录

第1章 概述 1

1.1 数据 1

1.1.1 数据的概念 1

1.1.2 数据类型 2

1.1.3 数据组织形式 2

1.1.4 数据的价值 3

1.2 大数据 4

1.2.1 大数据采集 5

1.2.2 大数据来源 5

1.2.3 大数据采集方法 7

1.3 数据存储 8

1.4 数据预处理 9

1.5 数据分析 11

1.6 数据可视化 12

1.7 基础软件安装与运行 13

1.7.1 Python 3.9.9的安装与使用 14

1.7.2 PyCharm的安装与使用 16

第2章 网络数据采集——静态网页爬取 23

2.1 网络爬虫的概念 24

2.2 网络爬虫的工作流程 24

2.3 通过requests库获取网页数据 27

2.3.1 requests库简介 27

2.3.2 requests库的常用方法 28

2.4 通过urllib库获取网页数据 32

2.4.1 urllib库简介 33

2.4.2 urllib库的基本使用 33

2.5 通过BeautifulSoup解析网页 39

2.5.1 beautifulsoup4库简介 39

2.5.2 beautifulsoup4库的使用 40

2.6 通过XPath解析网页 51

2.6.1 XPath基本语法 52

2.6.2 XPath谓语表达式 54

2.6.3 XPath常用的功能函数 55

2.6.4 XPath的使用 55

2.7 数据存储 59

2.7.1 保存于CSV文件 59

2.7.2 保存于JSON文件 63

第3章 网络数据采集——动态网页爬取 69

3.1 动态网页概述 70

3.1.1 动态网页的定义 70

3.1.2 动态网页的常用技术 71

3.1.3 动态网页的判定方法 72

3.1.4 动态网页爬取的主要方法 73

3.2 逆向分析法爬取动态网页 75

3.2.1 网页行为分析 76

3.2.2 定位动态网页核心数据接口 76

3.2.3 参数逆向分析 78

3.2.4 请求数据与解析 78

3.3 通过Selenium爬取动态网页 81

3.3.1 Selenium运行环境的安装与配置 81

3.3.2  Selenium库的使用 84

3.4 逆向分析法和Selenium模拟法的比较 95

3.5 存储数据至数据库 96

3.5.1 MySQL数据库 97

3.5.2 MongoDB数据库 108

第4章 网络数据采集——提升网络爬虫效率 124

4.1 网络爬虫速度提升方案 125

4.2 进程与线程 126

4.2.1 进程的概念 126

4.2.2 线程的概念 127

4.2.3 进程与线程的联系与区别 127

4.3 单进程爬虫 128

4.4 多进程爬虫 131

4.4.1 使用Process类创建进程 132

4.4.2 自定义Process子类创建进程 133

4.4.3 使用Pool类创建多进程 134

4.4.4 进程间通信 136

4.5 多线程爬虫 144

4.5.1 多线程爬虫流程分析 144

4.5.2 多线程爬虫实现技术 145

4.5.3 多线程爬虫的实现 148

第5章 网络数据采集——Scrapy框架初探 154

5.1 Scrapy框架概述 155

5.1.1 Scrapy框架结构 157

5.1.2 Scrapy工作流程 158

5.2 Scrapy快速入门 159

5.2.1 安装Scrapy 159

5.2.2 第一个Scrapy项目 160

5.2.3 Scrapy项目目录结构 167

5.2.4 Scrapy常用命令行工具 168

5.3 Scrapy请求发送与解析响应结果 173

5.3.1 Scrapy请求发送原理 173

5.3.2 解析响应结果 175

5.4 Scrapy爬虫数据的保存 181

5.4.1 默认保存方式 181

5.4.2 自定义保存方式 182

第6章 网络数据采集——Scrapy框架深入 192

6.1 通用网络爬虫 193

6.1.1 CrawlSpider类 194

6.1.2 链接提取器和提取规则 195

6.1.3 CrawlSpider工作原理 198

6.1.4 创建CrawlSpider爬虫实现全站数据爬取 201

6.2 Scrapy动态网页爬取 209

6.2.1 逆向分析法 210

6.2.2 模拟法 213

6.3 应对反爬的主要策略 221

6.3.1 常规反爬设置 221

6.3.2 随机用户代理 223

6.3.3 随机IP代理 227

第7章 系统日志数据采集 234

7.1 Flume简介 235

7.1.1 Flume核心组件 235

7.1.2 Flume数据流 237

7.1.3 Flume应用场景 237

7.2 Flume的安装与使用 238

7.2.1 Flume的安装 238

7.2.2 Flume的启动和运行 243

7.3 采集日志文件到HDFS 247

7.3.1 配置HDFS环境 247

7.3.2 采集目录到HDFS 254

7.3.3 采集文件到HDFS 256

7.4 采集数据库数据到HDFS 258

7.4.1 准备工作 258

7.4.2 配置和启动Flume 260

第8章 ETL工具Kettle 265

8.1 Kettle简介 266

8.2 Kettle的安装 267

8.3 Kettle的基本功能 268

8.3.1 转换管理 268

8.3.2 作业管理 269

8.4 Kettle的基本概念 270

8.5 运用Kettle工具进行数据抽取、清洗并加载到MySQL数据库 273

8.5.1 抽取Excel数据、去重并加载到MySQL数据库 275

8.5.2 抽取文本文件、填充空值并加载到MySQL数据库 282

8.5.3 抽取CSV文件、清洗后加载到MySQL数据库 290

8.6 使用Kettle转换MySQL数据库中的数据 298

第9章 数据分析与可视化 307

9.1 Jupyter Notebook 308

9.1.1 Anaconda的下载 308

9.1.2 Anaconda的安装 309

9.1.3 Jupyter Notebook的常用功能 312

9.2 pandas库 314

9.2.1 Series类型 314

9.2.2 DataFrame类型 315

9.3 运用pandas库完成文件的读写和数据的切片操作 315

9.3.1 Excel文件的读写 315

9.3.2 数据的查看 317

9.3.3 部分行列的切片 318

9.3.4 统计分析 321

9.4 运用pandas库完成数据清洗 322

9.4.1 重复值处理 322

9.4.2 缺失值处理 324

9.4.3 异常值处理 327

9.5 运用pandas库完成数据分析 329

9.5.1 排序 329

9.5.2 分组与聚合 330

9.6 运用matplotlib库完成数据可视化 332

9.6.1 导入pyplot模块 333

9.6.2 绘图区域切分 333

9.6.3 pyplot.plot()绘图函数 334

9.6.4 折线图 339

9.6.5 饼图 340

9.6.6 柱状图 342

9.6.7 散点图 343