自己动手写网络爬虫(修订版)

本书介绍了网络爬虫开发中的关键问题与Java实现。主要包括从互联网获取信息与提取信息和对Web信息挖掘等内容。本书在介绍基本原理的同时注重辅以具体代码实现来帮助读者加深理解,书中部分代码甚至可以直接使用。本书适用于有Java程序设计基础的开发人员。同时也可以作为计算机相关专业本科生或研究生的参考教程。
作者简介
罗刚,计算机软件硕士,毕业于吉林工业大学。2005年创立北京盈智星科技发展有限公司,2008年联合创立上海数聚软件公司。猎兔搜索创始人,当前猎兔搜索在北京、上海以及石家庄均设有研发部。他带领猎兔搜索技术开发团队先后开发出猎兔中文分词系统、猎兔文本挖掘系统,智能垂直搜索系统以及网络信息监测系统等,实现互联网信息的采集、过滤、搜索和实时监测,其开发的搜索软件日用户访问量万次以上。

目  录
第1篇自己动手抓取数据
第1章全面剖析网络爬虫3
1.1抓取网页4
1.1.1深入理解URL4
1.1.2通过指定的URL抓取
网页内容6
1.1.3Java网页抓取示例8
1.1.4处理HTTP状态码10
1.2宽度优先爬虫和带偏好的爬虫12
1.2.1图的宽度优先遍历12
1.2.2宽度优先遍历互联网13
1.2.3Java宽度优先爬虫示例15
1.2.4带偏好的爬虫22
1.2.5Java带偏好的爬虫示例23
1.3设计爬虫队列24
1.3.1爬虫队列24
1.3.2使用BerkeleyDB构建爬虫
队列29
1.3.3使用BerkeleyDB构建爬虫
队列示例30
1.3.4使用布隆过滤器构建
Visited表36
1.3.5详解Heritrix爬虫队列39
1.4设计爬虫架构46
1.4.1爬虫架构46
1.4.2设计并行爬虫架构47
1.4.3详解Heritrix爬虫架构52
1.5使用多线程技术提升爬虫性能55
1.5.1详解Java多线程55
1.5.2爬虫中的多线程59
1.5.3一个简单的多线程爬虫实现60
1.5.4详解Heritrix多线程结构61
本章小结64
第2章分布式爬虫69
2.1设计分布式爬虫70
2.1.1分布式与云计算70
2.1.2分布式与云计算技术
爬虫中的应用--浅析
Google的云计算架构72
2.2分布式存储72
2.2.1从Ralation_DB到key/value
存储72
2.2.2ConsistentHash算法74
2.2.3ConsistentHash代码实现79
2.3Google的成功之道--GFS80
2.3.1GFS详解80
2.3.2开源GFS--HDFS84
2.4Google网页存储秘诀--BigTable88
2.4.1详解BigTable88
2.4.2开源BigTable-HBase93
2.5Google的成功之道--
MapReduce算法98
2.5.1详解MapReduce算法100
2.5.2MapReduce容错处理101
2.5.3MapReduce实现架构102
2.5.4Hadoop中的MapReduce
简介104
2.5.5wordCount例子的实现105
2.6Nutch中的分布式109
2.6.1Nutch爬虫详解109
2.6.2Nutch中的分布式116
本章小结118
第3章爬虫的"方方面面"121
3.1爬虫中的"黑洞"122
3.2主题爬虫和限定爬虫122
3.2.1理解主题爬虫122
3.2.2Java主题爬虫128
3.2.3理解限定爬虫130
3.2.4Java限定爬虫示例136
3.3有"道德"的爬虫152
本章小结156

第2篇自己动手抽取Web内容

第4章"处理"HTML页面159
4.1征服正则表达式160
4.1.1学习正则表达式160
4.1.2Java正则表达式163
4.2抽取HTML正文169
4.2.1了解Jsoup169
4.2.2使用正则表达式抽取示例173
4.3抽取正文177
4.4从JavaScript中抽取信息193
4.4.1JavaScript抽取方法193
4.4.2JavaScript抽取示例195
本章小结197
第5章非HTML正文抽取199
5.1抽取PDF文件200
5.1.1学习PDFBox200
5.1.2使用PDFBox抽取示例204
5.1.3提取PDF文件标题205
5.1.4处理PDF格式的公文206
5.2抽取Office文档211
5.2.1学习POI211
5.2.2使用POI抽取Word示例211
5.2.3使用POI抽取PPT示例213
5.2.4使用POI抽取Excel示例214
5.3抽取RTF217
5.3.1开源RTF文件解析器217
5.3.2实现一个RTF文件解析器217
5.3.3解析RTF示例222
本章小结227
第6章多媒体抽取229
6.1视频抽取230
6.1.1抽取视频关键帧230
6.1.2Java视频处理框架231
6.1.3Java视频抽取示例235
6.2音频抽取247
6.2.1抽取音频248
6.2.2Java音频抽取技术252
本章小结254
第7章去掉网页中的"噪声"255
7.1"噪声"对网页的影响256
7.2利用"统计学"消除"噪声"257
7.2.1网站风格树260
7.2.2"统计学去噪"的
Java实现268
7.3利用"视觉"消除"噪声"272
7.3.1"视觉"与"噪声"272
7.3.2"视觉去噪"的Java实现273
本章小结277

第3篇自己动手挖掘Web数据

第8章分析Web图281
8.1存储Web"图"282
8.2利用Web"图"分析链接291
8.3Google的秘密--PageRank291
8.3.1深入理解PageRank算法291
8.3.2PageRank算法的Java实现295
8.3.3应用PageRank进行链接
分析298
8.4PageRank的兄弟HITS299
8.4.1深入理解HITS算法299
8.4.2HITS算法的Java实现300
8.4.3应用HITS进行链接分析311
8.5PageRank与HITS比较312
本章小结313
第9章去掉"重复"的文档315
9.1何为"重复"的文档316
9.2利用"语义指纹"排重316
9.2.1理解"语义指纹"318
9.2.2"语义指纹"排重的
Java实现319
9.3SimHash排重319
9.3.1理解SimHash320
9.3.2SimHash排重的Java实现321
9.4分布式文档排重328
本章小结329
第10章分类与聚类的应用331
10.1网页分类332
10.1.1收集语料库332
10.1.2选取网页的"特征"333
10.1.3使用支持向量机进行
网页分类336
10.1.4利用URL地址进行
网页分类338
10.1.5使用AdaBoost进行
网页分类338
10.2网页聚类341
10.2.1深入理解DBScan算法341
10.2.2使用DBScan算法聚类
实例342
本章小结344

#现在前往

精选留言

自己,手写,网络,爬虫
sample
2020-08-12
写留言
签到
投稿
QQ咨询
返回顶部