网络数据采集技术:Java网络爬虫实战
作者:钱洋,姜元春 著
出版时间: 2020年版
内容简介
《网络数据采集技术:Java网络爬虫实战》以Java为开发语言,系统地介绍了网络爬虫的理论知识和基础工具,包括网络爬虫涉及的Java基础知识、HTTP协议基础与网络抓包、网页内容获取、网页内容解析和网络爬虫数据存储等。本书选取典型网站,采用案例讲解的方式介绍网络爬虫中涉及的问题,以增强读者的动手实践能力。同时,本书还介绍了3种Java网络爬虫开源框架,即Crawler4j、WebCollector和WebMagic。 《网络数据采集技术:Java网络爬虫实战》适用于Java网络爬虫开发的初学者和进阶者;也可作为网络爬虫课程教学的参考书,供高等院校文本挖掘、自然语言处理、大数据商务分析等相关学科的本科生和研究生参考使用;也可供企业网络爬虫开发人员参考使用。
目录
第1 章 网络爬虫概述与原理 1
1.1 网络爬虫简介 1
1.2 网络爬虫分类 2
1.3 网络爬虫流程 4
1.4 网络爬虫的采集策略 5
1.5 学习网络爬虫的建议 5
1.6 本章小结 6
第2 章 网络爬虫涉及的Java 基础知识 7
2.1 开发环境的搭建 7
2.1.1 JDK 的安装及环境变量配置 7
2.1.2 Eclipse 的下载 9
2.2 基本数据类型 10
2.3 数组 11
2.4 条件判断与循环 12
2.5 集合 15
2.5.1 List 和Set 集合 15
2.5.2 Map 集合 16
2.5.3 Queue 集合 17
2.6 对象与类 19
2.7 String 类 21
2.8 日期和时间处理 23
2.9 正则表达式 26
2.10 Maven 工程的创建 29
2.11 log4j 的使用 33
2.12 本章小结 40
第3 章 HTTP 协议基础与网络抓包 41
3.1 HTTP 协议简介 41
3.2 URL 42
3.3 报文 44
3.4 HTTP 请求方法 46
3.5 HTTP 状态码 46
3.5.1 状态码2XX 47
3.5.2 状态码3XX 47
3.5.3 状态码4XX 48
3.5.4 状态码5XX 48
3.6 HTTP 信息头 48
3.6.1 通用头 49
3.6.2 请求头 52
3.6.3 响应头 55
3.6.4 实体头 56
3.7 HTTP 响应正文 57
3.7.1 HTML 58
3.7.2 XML 60
3.7.3 JSON 61
3.8 网络抓包 64
3.8.1 简介 64
3.8.2 使用情境 65
3.8.3 浏览器实现网络抓包 65
3.8.4 其他网络抓包工具推荐 70
3.9 本章小结 70
第4 章 网页内容获取 71
4.1 Jsoup 的使用 71
4.1.1 jar 包的下载 71
4.1.2 请求URL 72
4.1.3 设置头信息 75
4.1.4 提交请求参数 78
4.1.5 超时设置 80
4.1.6 代理服务器的使用 81
4.1.7 响应转输出流(图片、PDF 等的下载) 83
4.1.8 HTTPS 请求认证 85
4.1.9 大文件内容获取问题 89
4.2 HttpClient 的使用 91
4.2.1 jar 包的下载 91
4.2.2 请求URL 92
4.2.3 EntityUtils 类 97
4.2.4 设置头信息 98
4.2.5 POST 提交表单 100
4.2.6 超时设置 103
4.2.7 代理服务器的使用 105
4.2.8 文件下载 106
4.2.9 HTTPS 请求认证 108
4.2.10 请求重试 111
4.2.11 多线程执行请求 114
4.3 URLConnection 与HttpURLConnection 117
4.3.1 实例化 117
4.3.2 获取网页内容 118
4.3.3 GET 请求 118
4.3.4 模拟提交表单(POST 请求) 119
4.3.5 设置头信息 120
4.3.6 连接超时设置 121
4.3.7 代理服务器的使用 122
4.3.8 HTTPS 请求认证 122
4.4 本章小结 124
第5 章 网页内容解析 125
5.1 HTML 解析 125
5.1.1 CSS 选择器 125
5.1.2 Xpath 语法 127
5.1.3 Jsoup 解析HTML 128
5.1.4 HtmlCleaner 解析HTML 135
5.1.5 HTMLParser 解析HTML 139
5.2 XML 解析 144
5.3 JSON 解析 145
5.3.1 JSON 校正 145
5.3.2 org.json 解析JSON 147
5.3.3 Gson 解析JSON 152
5.3.4 Fastjson 解析JSON 157
5.3.5 网络爬虫实战演练 159
5.4 本章小结 165
第6 章 网络爬虫数据存储 166
6.1 输入流与输出流 166
6.1.1 简介 166
6.1.2 File 类 166
6.1.3 文件字节流 169
6.1.4 文件字符流 172
6.1.5 缓冲流 176
6.1.6 网络爬虫下载图片实战 180
6.1.7 网络爬虫文本存储实战 184
6.2 Excel 存储 188
6.2.1 Jxl 的使用 188
6.2.2 POI 的使用 191
6.2.3 爬虫案例 198
6.3 MySQL 数据存储 202
6.3.1 数据库的基本概念 203
6.3.2 SQL 语句基础 203
6.3.3 Java 操作数据库 207
6.3.4 爬虫案例 217
6.4 本章小结 219
第7 章 网络爬虫实战项目 220
7.1 新闻数据采集 220
7.1.1 采集的网页 220
7.1.2 框架介绍 222
7.1.3 程序编写 223
7.2 企业信息采集 235
7.2.1 采集的网页 235
7.2.2 框架介绍 238
7.2.3 第一层信息采集 239
7.2.4 第二层信息采集 248
7.3 股票信息采集 256
7.3.1 采集的网页 256
7.3.2 框架介绍 257
7.3.3 程序设计 258
7.3.4 Quartz 实现定时调度任务 267
7.4 本章小结 271
第8 章 Selenium 的使用 272
8.1 Selenium 简介 272
8.2 Java Selenium 环境搭建 272
8.3 浏览器的操控 274
8.4 元素定位 276
8.4.1 id 定位 276
8.4.2 name 定位 277
8.4.3 class 定位 278
8.4.4 tag name 定位 278
8.4.5 link text 定位 278
8.4.6 Xpath 定位 279
8.4.7 CSS 选择器定位 279
8.5 模拟登录 280
8.6 动态加载JavaScript 数据(操作滚动条) 283
8.7 隐藏浏览器 285
8.8 截取验证码 287
8.9 本章小结 291
第9 章 网络爬虫开源框架 292
9.1 Crawler4j 的使用 292
9.1.1 Crawler4j 简介 292
9.1.2 jar 包的下载 292
9.1.3 入门案例 293
9.1.4 相关配置 297
9.1.5 图片的采集 300
9.1.6 数据采集入库 304
9.2 WebCollector 的使用 312
9.2.1 WebCollector 简介 312
9.2.2 jar 包的下载 313
9.2.3 入门案例 313
9.2.4 相关配置 318
9.2.5 HTTP 请求扩展 319
9.2.6 翻页数据采集 327
9.2.7 图片的采集 331
9.2.8 数据采集入库 334
9.3 WebMagic 的使用 347
9.3.1 WebMagic 简介 347
9.3.2 jar 包的下载 347
9.3.3 入门案例(翻页数据采集) 347
9.3.4 相关配置 351
9.3.5 数据存储方式 352
9.3.6 数据采集入库 355
9.3.7 图片的采集 365
9.4 本章小结 368