目录
第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
· · · · · · (
收起)