《自己动手写网络爬虫(附光盘)》介绍了网络爬虫开发中的关键问题与java实现。主要包括从互联网获取信息与提取信息和对web信息挖掘等内容。《自己动手写网络爬虫(附光盘)》在介绍基本原理的同时注重辅以具体代码实现来帮助读者加深理解,书中部分代码甚至可以直接使用。《自己动手写网络爬虫(附光盘)》适用于有java程序设计基础的开发人员。同时也可以作为计算机相关专业本科生或研究生的参考教材。
目录
- 第1篇 自己动手抓取数据
- 第1章 全面剖析网络爬虫
- 1.1 抓取网页
- 1.1.1 深入理解URL
- 1.1.2 通过指定的URL抓取网页内容
- 1.1.3 Java网页抓取示例
- 1.1.4 处理HTTP状态码
- 1.2 宽度优先爬虫和带偏好的爬虫
- 1.2.1 图的宽度优先遍历
- 1.2.2 宽度优先遍历互联网
- 1.2.3 Java宽度优先爬虫示例
- 1.2.4 带偏好的爬虫
- 1.2.5 Java带偏好的爬虫示例
- 1.3 设计爬虫队列
- 1.3.1 爬虫队列
- 1.3.2 使用Berkeley DB构建爬虫队列
- 1.3.3 使用Berkeley DB构建爬虫队列示例
- 1.3.4 使用布隆过滤器构建Visited表
- 1.3.5 详解Heritrix爬虫队列
- 1.4 设计爬虫架构
- 1.4.1 爬虫架构
- 1.4.2 设计并行爬虫架构
- 1.4.3 详解Heritrix爬虫架构
- 1.5 使用多线程技术提升爬虫性能
- 1.5.1 详解Java多线程
- 1.5.2 爬虫中的多线程
- 1.5.3 一个简单的多线程爬虫实现
- 1.5.4 详解Heritrix多线程结构
- 1.6 本章小结
- 第2章 分布式爬虫
- 2.1 设计分布式爬虫
- 2.1.1 分布式与云计算
- 2.1.2 分布式与云计算技术在爬虫中的应用——浅析Google的云计算架构
- 2.2 分布式存储
- 2.2.1 从Ralation_DB到key/value存储
- 2.2.2 Consistent Hash算法
- 2.2.3 Consistent Hash代码实现
- 2.3 Google的成功之道——GFS
- 2.3.1 GFS详解
- 2.3.2 开源GFS——HDFS
- 2.4 Google网页存储秘诀——BigTable
- 2.4.1 详解BigTable
- 2.4.2 开源BigTable——HBase
- 2.5 Google的成功之道——MapReduce算法
- 2.5.1 详解MapReduce算法
- 2.5.2 MapReduce容错处理
- 2.5.3 MapReduce实现架构
- 2.5.4 Hadoop中的MapReduce简介
- 2.5.5 wordCount例子的实现
- 2.6 Nutch中的分布式
- 2.6.1 Nutch爬虫详解
- 2.6.2 Nutch中的分布式
- 2.7 本章小结
- 第3章 爬虫的“方方面面”
- 3.1 爬虫中的“黑洞”
- 3.2 限定爬虫和主题爬虫
- 3.2.1 理解主题爬虫
- 3.2.2 Java主题爬虫
- 3.2.3 理解限定爬虫
- 3.2.4 Java限定爬虫示例
- 3.3 有“道德”的爬虫
- 3.4 本章小结
- 第2篇 自己动手抽取Web内容
- 第4章 处理HTML页面
- 4.1 征服正则表达式
- 4.1.1 学习正则表达式
- 4.1.2 Java正则表达式
- 4.2 抽取HTML正文
- 4.2.1 了解HtmlParser
- 4.2.2 使用正则表达式抽取示例
- 4.3 抽取正文
- 4.4 从JavaScript中抽取信息
- 4.4.1 JavaScript抽取方法
- 4.4.2 JavaScript抽取示例
- 4.5 本章小结
- 第5章 非HTML正文抽取
- 5.1 抽取PDF文件
- 5.1.1 学习PDFBox
- 5.1.2 使用PDFBox抽取示例
- 5.1.3 提取PDF文件标题
- 5.1.4 处理PDF格式的公文
- 5.2 抽取Office文档
- 5.2.1 学习POI
- 5.2.2 使用POI抽取Word示例
- 5.2.3 使用POI抽取PPT
- 5.2.4 使用POI抽取Excel示例
- 5.3 抽取RTF
- 5.3.1 开源RTF文件解析器
- 5.3.2 实现一个RTF文件解析器
- 5.3.3 解析RTF示例
- 5.4 本章小结
- 第6章 多媒体抽取
- 6.1 抽取视频
- 6.1.1 抽取视频关键帧
- 6.1.2 Java视频处理框架
- 6.1.3 Java视频抽取示例
- 6.2 音频抽取
- 6.2.1 抽取音频
- 6.2.2 学习Java音频抽取技术
- 6.3 本章小结
- 第7章 去掉网页中的“噪声”
- 7.1 噪声对网页的影响
- 7.2 利用“统计学”消除“噪声”
- 7.2.1 网站风格树
- 7.2.2 统计学去噪Java实现
- 7.3 利用“视觉”消除“噪声”
- 7.3.1 视觉与"噪声"
- 7.3.2 视觉去噪Java实现
- 7.4 本章小结
- 第3篇 自己动手挖掘Web数据
- 第8章 分析Web图
- 8.1 存储Web“图”
- 8.2 利用Web“图”分析链接
- 8.3 Google的秘密——PageRank
- 8.3.1 深入理解PageRank算法
- 8.3.2 PageRank算法的Java实现
- 8.3.3 应用PageRank进行链接分析
- 8.4 PageRank 的兄弟HITS
- 8.4.1 深入理解HITS算法
- 8.4.2 HITS算法的Java实现
- 8.4.3 应用HITS进行链接分析
- 8.5 PageRank与HITS的比较
- 8.6 本章小结
- 第9章 去掉重复的“文档”
- 9.1 何为“重复”的文档
- 9.2 去除“重复”文档——排重
- 9.3 利用“语义指纹”排重
- 9.3.1 理解“语义指纹”
- 9.3.2 语义指纹排重的Java实现
- 9.4 SimHash排重
- 9.4.1 理解SimHash
- 9.4.2 SimHash排重的Java实现
- 9.5 分布式文档排重
- 9.6 本章小结
- 第10章 分类与聚类的应用
- 10.1 网页分类
- 10.1.1 收集语料库
- 10.1.2 选取网页的“特征”
- 10.1.3 使用支持向量机进行网页分类
- 10.1.4 利用URL地址进行网页分类
- 10.1.5 使用AdaBoost进行网页分类
- 10.2 网页聚类
- 10.2.1 深入理解DBScan算法
- 10.2.2 使用DBScan算法聚类实例
-
10.3 本章小结