
作者:钱洋
页数:380
出版社:电子工业出版社
出版日期:2019
ISBN:9787121376078
电子书格式:pdf/epub/txt
内容简介
本书以Java为开发语言,系统地介绍了网络爬虫的理论知识和基础工具,包括网络爬虫涉及的Java基础知识、HTTP协议基础与网络抓包、网页内容获取、网页内容解析和网络爬虫数据存储等。本书选取典型网站,采用案例讲解的方式介绍网络爬虫中涉及的问题,以增强读者的动手实践能力。同时,本书还介绍了3种Java网络爬虫开源框架,即Crawler4j、WebCollector和WebMagic。本书适用于Java网络爬虫开发的初学者和进阶者;也可作为网络爬虫课程教学的参考书,供高等院校文本挖掘、自然语言处理、大数据商务分析等相关学科的大学生和研究生参考使用;也可供企业网络爬虫开发人员参考使用。
作者简介
钱洋合肥工业大学管理科学与工程系博士、CSDN博客专家。曾作为技术人员参与多个横向、纵向学术课题,负责数据采集系统的设计与开发工作。曾在CSDN上撰写多篇关于数据采集、自然语言处理、编程语言等领域的原创博客。姜元春合肥工业大学教授、博士生导师。长期从事电子商务、商务智能、数据采集与挖掘等方面的理论研究与教学工作。先后主持过国家自然科学基金优秀青年科学基金项目、国家自然科学基金重大研究计划培育项目、国家自然科学基金青年科学基金项目、教育部人文社科青年基金项目、阿里巴巴青年学者支持计划、CCF-腾讯犀牛鸟基金项目等课题的研究工作。
本书特色
本书以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 请求重试 ………………………………………….















