自己动手写网络爬虫

出版时间:2010-10  出版社:清华大学  作者:罗刚//王振东  页数:346  
Tag标签:无  

前言

当你在网上冲浪时,你是否知道还有一类特殊的网络用户也在互联网上默默地工作着,它们就是网络爬虫。这些网络爬虫按照设计者预定的方式,在网络中穿梭,同时自动收集有用的信息,进行分类和整理,将整理结果提供给用户,以方便用户查找他们感兴趣的内容。由于网络爬虫的实用性,引起了很多程序员,特别是Web程序员的兴趣。但是大多数网络爬虫的开发原理与技巧在专业的公司内部都秘而不宣,至今仍然缺少理论与实践相结合的专门介绍网络爬虫的书籍。本书将弥补这个问题,尝试理论与实践相结合,深入透彻地讲解网络爬虫的原理,并且辅以相关代码作为参考。本书相关的代码在附带光盘中可以找到。本书的两位主要作者在搜索引擎领域都有丰富的理论和实践经验。同时,还有多个程序员帮忙开发或编写了代码实现,例如Java实现异步I/O或对PDF文件的处理等。由于作者的日常工作繁忙,做得不够的地方敬请谅解。作者罗刚在参加编写本书之前,还独立撰写过《自己动手写搜索引擎》一书,但存在讲解不够细致、知识点不够深入等问题。此次与王振东合著本书,相对于上一本书而言,对读者反馈有更高的预期。因为作者相信如下的假设:如果能够与更多的人更好地合作,事情往往能做得更好。本书从基本的爬虫原理开始讲解,通过介绍优先级队列、宽度优先搜索等内容引领读者入门;之后根据当前风起云涌的云计算热潮,重点讲述了云计算的相关内容及其在爬虫中的应用,以及带偏好的爬虫、信息抽取、链接分析等内容;为了能够让读者更深入地了解爬虫,本书在最后两章还介绍了有关爬虫的数据挖掘的内容。由于搜索引擎相关领域也正在快速发展中,而且由于篇幅的限制,有些不成熟的内容,没有能够在本书体现,例如有关"暗网"的内容。随着技术的不断发展,我们将在今后的版本中加入这些内容。

内容概要

本书介绍了网络爬虫开发中的关键问题与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 本章小结

章节摘录

插图:代表主机ftp.yoyodyne.com的根目录。爬虫最主要的处理对象就是URL,它根据URL地址取得所需要的文件内容,然后对它进行进一步的处理。因此,准确地理解URL对理解网络爬虫至关重要。从下一节开始,我们将详细地讲述如何根据URL地址来获得网页内容。1.1.2  通过指定的URL抓取网页内容上一节详细介绍了URL的构成,这一节主要阐述如何根据给定的URL来抓取网页。所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地。类似于使用程序模拟IE浏览器的功能,把URL作为HTTP请求的内容发送到服务器端,然后读取服务器端的响应资源。Java语言是为网络而生的编程语言,它把网络资源看成是一种文件,它对网络资源的访问和对本地文件的访问一样方便。它把请求和响应封装为流。因此我们可以根据相应内容,获得响应流,之后从流中按字节读取数据。例如,java.net.URL类可以对相应的Web服务器发出请求并且获得响应文档。

编辑推荐

《自己动手写网络爬虫》是国内第一本专门讲解网络爬虫开发的书籍,介绍如何应用云计算架构开发分布式爬虫。猎兔搜索工程师多年项目经验总结深入介绍Web数据挖掘实现过程光盘中提供了高效的代码解决方案案例均使用流行的Java语言编写

图书封面

图书标签Tags

评论、评分、阅读与下载


    自己动手写网络爬虫 PDF格式下载


用户评论 (总计117条)

 
 

  •   如果你不懂一门面向对象的语言,这本书从语言角度不适合你。如果你懂得一门面向对象的语言,且又对爬虫感兴趣,这本书是个不错的选择。作者能够从不同的爬虫系统进行对比,合理的设计了爬虫的整体架构,并且给出了很多解决问题的思路和代码,是一本不错的关于爬虫的书籍。
  •   了解一下如何用java写网络爬虫,拓展一下知识面.顺便说一下,对当当网的服务还算满意!!
  •   自己动手写网络爬虫不错
  •   爬虫就不多说了,这本书简单易懂,喜欢互联网搜索的朋友可以看看.
  •   第一本讲爬虫的书,很好。
  •   乍看书目录介绍的相当不错,但是入手阅读后发现有下面问题:
    1.定位人群模糊,不深又不浅,而且很多算法都没能清晰的阐述,还没有网上帖子来的清晰。
    2.介绍思路不清晰,让人晕头转向,同篇内容间也没有连贯性,有点像为目录填充的内容。
    3.源码不完整,我看到的去噪,消重缺少代码都无法编译,更找不到入口,希望作者这方面能加强。
    4.引擎这方面书籍,确实挺少,作者也不容易,但希望你能越写越好才提出此些建议。
  •   用java实现简单的搜索功能,不错
  •   java写的,可惜不会java,但应该都一样
  •   深入浅出,不过需要一定的Java基础
  •   光盘只有代码,没有视频讲解!要有视频讲解的看客,要三思而后买。
  •   不错的入门学习书,带领你进入实战开发的阶段
  •   没有太多花里胡哨的"概述","引用"。看得出作者确实做出过一些东西。光盘里还有主要的代码,挺好。
  •   说实话,要想凭这个搞出好的开发,不太现实,但是个人认为它是辅助个人进阶的好书,值得大家去研究一下潮流技术。
  •   是自己动手写搜素引擎的姊妹篇,好书,是作者多年经验的总结,值得学习和实践参考!
  •   正在做毕业设计,选本书读一下,对我帮助很大
  •   不错的书,讲解的很全面,推荐。
  •   这本书很不错,师兄看完之后强烈推荐给我,对于做语义分析很有帮助
  •   对自己有帮助。正在看这个方面的书。如果书的折扣再高点就好了。
  •   最近在弄相关的东西,手头很需要,书的质感很不错
  •   这本书老公还挺喜欢的,工作上需要用到才买了,觉得书很好的~
  •   内容很详细,但是****client.jar已经到了4.22版本,和书中用的3.0+版本差异很大,实践起来很不方便
  •   这本书不错,对我用处很大,而且随书光盘也不错
  •   这本书很不错,如果有完整的例子就更好了!
  •   是一本好书,不过需要一些基础
  •   书算是完整,但不是最新的!
  •   不错,买给朋友的,书我没看,但是质量不错,配送光盘
  •   速度挺快的,书还没看,还不错吧
  •   书很不错,由浅入深。老师建议的书。
  •   书正在看,还可以吧
  •   帮我和同学一起买的,很好的书,很实用~
  •   应该还不错吧,买了好多这类的书
  •   感觉书不错!挺好的
  •   用了,应该是正版!书的质量还不错,邮递的速度也蛮快的
  •   书很好,挺详细的,很适合初学者。
  •   内容吗,也不错,只是有点深,还没有看懂!
  •   书的质量不错,发货的速度也很快的
  •   tinghaode ......
  •   给同事买的。他还没来的及看
  •   不知道怎么样,给个好评吧,相信同学眼光!
  •   帮同学买的,物流真的很快!!!
  •   不错,很实用,好东西,收益匪浅啊!值得深入研究
  •   帮同学买的还行
  •   我不懂啊,我是帮人买的……
  •   送货真慢
  •   总体来说还行,只是不够详细。不过还算好了,市场上本来就没有基本这方面的书。
  •   很难得的一本搜索引擎书籍
  •   很专业的一本参考书,有指导意义
  •   这个书适合来学习爬虫程序!
  •   书挺好的、就是物流实在太慢了~5小时的车程申通用了4天居然
  •   书看起来质量不多,物流也还可以
  •   还不错,内容挺深的~~~
  •   挺好,速度很快,质量也好
  •   很具有实用性,实践性也较强!
  •   多多学习,好好学习,天天向上
  •   比较深入,比较有深度,值得研究
  •   讲述网络爬虫的原理与实现
  •   可以作为网络爬虫的入门书籍,把一下较为新的概念介绍了,但是可以更加深入研究一下算法
  •   很适合入门,讲解了网络爬虫的各个方面的知识架构
  •   自己动手写网络爬虫(配光盘)好书!
  •   在网络爬虫方面介绍的比较基础和全面,比较通俗易懂,不错,值得看看。
  •   暂时只是看了前面几章,确实还不错,爬虫的原理,关键技术都点出来了。。。
  •   能够了解一下爬虫的内部机制,并且附有大量的源码,看着不错
  •   本身不是Java出身,所以跳过了大段的代码。整体还不错,有了一个概念,还没开始时间
  •   当时买来是为了做毕设参考资料的,但是实际上,我也没怎么看,当然也就没按照书中的步骤去练习了。但是在跳跃着浏览过程中,我个人觉得这本书还是值得一读的,是一本让你别想只需复制代码就能完成、必须自己思考的偏向算法类的参考书籍。
  •   刚看了一章,难度还是有的,不适合新手看,里面涉及的一些常用的处理机制还是不错的,不同的项目也是可以借鉴的

    没学过任何计算机语言是绝对没法看懂本书的,这不是java基础
  •   这本据说很经典我就买了,其实为了毕业设计。但是如果你没有一定的java功底的话。你是看不太明白的。还有操作系统的一部分知识!!希望在我以后的买家一定注意自己是否真的有很厚的java功底!!否则你是看不懂的
  •   专于学网络搜索的教材,从基础做起
  •   关于快递:快递速度有些慢,在当当买时快三年了,这次硬是花了5天时间才到货,以前最长的也是07年雪灾的时候,花了一个星期。平常都只要最长3天,看来快递的有待改进

    关于书籍:粗略的翻了下,看了下第一章。发现这本书很不错,很值得初学者看。例子也很实用。但是有一点需要改进的,在介绍引入的jar包的时候,可否顺便加上版本号,****Client的jar包的最新版和文中所列出来的有很大的区别的。文中应该是***mons-****client-3.1.jar,现在的最新版是****client-4.0.3.jar,两个jar包有很大的区别的。
  •   本书确实不适合初学者购买,内容涉及面广,包含很多网络,算法,队列,多线程等知识。
  •   看了几页...感觉不错..就是有部分代码可能有点小问题....整体不错...顶下
  •   代码有错误,感觉失望中。。。
  •   没有想象中的好,代码过多。。
  •   代码都到位了,不建议初学者看!
  •   是网络编程爱好者的参考书。
  •   在没买之前在网上看了点电子版,写的蛮不错的,有些程序调试不出来,书里所用的jar包已经是老版本了,但是精髓还是有的,值得一读
  •   一本初步入门的书,讲的不是很详细,但是关键部分还有的,就是怎么剥离正文内容,虽然网上也有,这里整合了一部分。
  •   对于想玩web的人来说是件愉快的事
  •   书中内容很多,但难度也相对较大,注释太少。
  •   物流很快,昨天下午下的单,早上就到了。书的纸质还行,内容还没完全看,但好像其中涉及到的nutch分析比较旧,与现在的版本相差有点大,希望读了之后有大的收获~
  •   货是挺好的、、书的内容还没怎么看、、不好说
  •   大体浏览了一下,还没仔细看,希望对我的学习有帮助
  •   现在同类的书比较少,能有一本算不错啦
  •   当入门书看吧
  •   书很不错,对于新手来说可以了,特别是快递服务很不错,为我等了好几天,感谢他
  •   到的挺快,内容还没看完,还行吧
  •   一般吧,买后悔了
  •   初级入门,想弄好还要下苦功夫
  •   自己感兴趣,所以买了。
  •   刚收到,慢慢读,慢慢品
  •   初学者用用还不错
  •   非常适合初学 初入职场者
  •   帮朋友买的,还有点用
  •   看了一下,需要细细再去看下,总体说还行
  •    一本东抄西抄的书,更可恨的是超的多是几年前的东西。。 很多类包就根本找不到,比如(newwatch.toolkit包)。而且第四章的正文提取代码连中文解释都是抄的。。不想再说什么了。这样赤裸裸的欺骗,。我准备投诉出版社
  •   就是从网上拷贝来拷贝去拼凑出的
  •   目录真的很不错。所以建议想买书的朋友直接把目录copy下来,对应目录在网上搜索资料吧,基本上比书上的还仔细。后悔死了。。。国人的书啊。。。
  •   除了目录之外就没有可看的了。读者只要看目录然后用google搜索一下就可以了。书里面各种废话,讲的浅不说,废话还多
  •   在网上随便抄出来的,坑爹阿
  •   各种拼凑,各种不规范,各种杂乱坑啊,真的对国人的书很失望,出书是很严肃的事儿,怎么能这样!!
  •   出于兴趣,非常想学习网络爬虫,于是看到这本书的名字,就买了;但是这本书,作者完全没有自己的东西,代码,内容基本都来自于百度百科,各大IT论坛,看目录是介绍了很多东西,但是都介绍的非常浅显,基本就是对着目录百度一搜就能找到和对应章节差不多的东西,严重缺乏深度,每种理论都是介绍了一点就戛然而止去介绍下一个。 总之,这本书,写的不好
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7