| 作者 |
| 钱洋 |
| 丛书名 |
| 出版社 |
| 电子工业出版社 |
| ISBN |
| 9787121376078 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 本书以Java为开发语言,系统地介绍了网络爬虫的理论知识和基础工具,包括网络爬虫涉及的Java基础知识、HTTP协议基础与网络抓包、网页内容获取、网页内容解析和网络爬虫数据存储等。本书选取典型网站,采用案例讲解的方式介绍网络爬虫中涉及的问题,以增强读者的动手实践能力。同时,本书还介绍了3种Java网络爬虫开源框架,即Crawler4j、WebCollector和WebMagic。本书适用于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 |