1. 首页
  2. 编程语言
  3. 其他
  4. 网络机器人Java编程指南

网络机器人Java编程指南

上传者: 2019-05-15 08:11:12上传 PDF文件 15.15MB 热度 27次
网络机器人Java编程指南 主要介绍网络爬虫的知识,是网络爬虫的入门教程Programming Spiders, Bots, and Aggregators in Java网络机器人Java编程指南〔美] Jeff heaton著童兆丰李纯刘润杰等译Ao79545電子工業出版Publishing House of Electronics Industry北京· BEIJINO内容提要是木研究如何实现具有Web能力的树络机器人的书。该书从 Intereet缩程的基本原理出发入浅出、循渐进地闻述∫闕络机器人! Spider,、Bo、 Aggregator的文现术,并分析了每种程序的优及适用场合。本书提供了大的冇效源代码,并对这屹代码进行了详细的分析。通过木书的介绍,你可以很分便地利附这屿技术,设计并实现勵络蜘蛛或閃绺息搜索器等杋器人程疗本书通俗易懂:适合于具有--Ja編程基的软件廾发人员阅读,也可供Web开发人员作为技术参影資料使用。Copyright@2002 SYBEX Inc, 1151 Marina Village Parkway, Alameda, CA 94501World rights reserved. No part of this publication may be stored in a retrieval systemtransmitted, or reproduced in any way, including but not limmited to photocopy, phgraph, magnetic or other record, without the prior agreement and written permission ofthe publish本书英文版由美國 SYBEX公司出版, SYBEX公已将中文版独家版权授予中国电了工≤业出版社及北京美迦亚屯了信总有限公同。木经许可,不得以任何形式和手段复制或抄袭本内容版权贸易合同没记号:0]-2002-0900图书在版编目(CI)数据网络机器人Java編程指南!(美)希顿( Heaton,J)著;帝兆肀,李纯,刘润杰译,-北京:电∫1业出版社,20027名原义: Programming Spiders.Bots, and Aggregators in JavaISBN75053-7740X网…,①希艹②童…③李…④刘田.Java语-程序设计Ⅳ.TP312中版本图馆CI数据核字(2002)弟043562号责仟編:徐云鹏印刷:北京大竺颖华印刷出版发行:电f工业出版社htp/www.phei.com.en北京市海淀区万寿路173信箱邮编:100036北京市海淀区翠微东里2号邮编:100036纪销:各地新华书店不:787X1092116印张:2725数:700T版次:202年7月第1版2002午7第1次印刷价;4400元凡购买电子业出版社的图书,如有缺损间题,讷问购买书店调换,若书店伟缺.请’本社发行部联系。联系电话:(010)68279077谨以此书献给我的祖父母: Agnes Heaton和 Roscoe heaton,以及 Emil a.trickerfu esther stricker l致谢枟出版得益于很多人的帮助,在这不可能都提及,但我还是要特別感谢为本拧做出主装攻献的人Sybex公可个作完成这部是个愉快的过程,每·个参与其中的人都很专业,而H随和。我先感谢技术编轩 Marc goldford先生,他提出」很多有用的建议,并且测试中所们的示例。另外,我荽感谢編辑 Rebecca rider女七,由于她出色的工作,使得全书內容清晰,叮读性强。 Diane lowery女土是我的 acquisitions editor,,同样非常感谢她在:出的初期提供的栉玏。我还要感谢整个制作组的成员,包括:制作编辑 Dennis Fitzgerald,电∫出版专刻 llt Niles和 JUdy Fung以及校灯 Laurie connell, Nancy Riddiough和EmySuan美RGA公司( the reinsurance group of America,inc.) Global software部门的作人员合作杵让人感到愉快。和我一起L作的是一群颇具天赋的T专业人员,所以我能不断地从他们身学到东西。我尤其感谢我的土管、也是行政总监 Kam chan先生,得益他的槄助,我在编程之外学会了如何设计大型复杂的系统。另外我要感谢副经理 Rick nolle作,是他花时间帮我在RGA找到了合适位。最后,我要感谢 Jym Barnes任,我们终涫在起讨论最新的技术我还婁谢谢NeiJ. Salkind博!,是他提出了本书的构想,并帮我实现了这个计划。我出要感谢我的朋 Lisa oliver先生悟我市阅了人很多內容,提出了不少建议和想法。吨朴我要感谢我的朋友 Jeffrey nodel先生和我一起讨论了很多Bo技术在现实世界的实际应川以及感谢在弋路易斯的华盛顿入学的 Bill Dare先生,我在他指导下做串的些硏究成果都纳进了本译者序I前. Intermet I经成为人们工作、生汘和娛乐的·邙分,它就像浩瀚的知讥海洋,仟由人们门由地遨游。当你在瑚上冲浪时,你烂否知道还有一类特的网络用户也有: Intemet:猷默地工作着,它们就是网终机器人,这些机器人按賦设计者预定的方式,在络中窃梭,冋时收集心的仁息,热门的搜索引擎站点就是很好的实例,很多搜索引擊的后台工作方式就是使用若F个络机器人自动收集冬站点信息,然后进行分类和整理,将整理结果提供给疒,以方便用找他们感兴趣的内容。由于网终机器人的实用性,引起了很多程序员特別是web稞序员的兴趣。为此,我们翮译∫这木介绍如何实现具冇Web访问能丿的蹰络机器人的书,目的是希吲帮助诙者了解网终忛器人,并能利用本介绍的技术,设计和实现闩己的网络机器人。木书深人浅阳、循序渐进地阐述了劂络机器人程序的实现技术。亡从 Internet编程的基本原理出发,許先介绀了Java套接宇编程技术,然后详细地分析了网绺机器人如何解析HTTP协议和IIML占,以及从中提取有用倍息的过程,并通过实际例程,深人剖析∫访问Web劂站的网终机器人程 Spider(网络蜘蛛程序)、Bot〔网络机器人程序)和 Aggregator(络信息搜俫器)的实现,最后本书提醒程序员要负责地使用劂络机器人程序,同时向读者描述了阏络机器人序木来的发展焰势。本书提供了大量的有效源代码,并对这些代码进行了详尽的分析。外,衣书的选配光盘中还提供了书中所有源程序和完整的Bot程序包。利用这技术和资榞,读者可以方便地设计并实现阏络蜘蛛戌网终信息搜索器等机器人程序。木书由童兆丰、李纯,刘涸杰和张文辉四人合谇。时,本卞的翻译出版I仵还得到许多人士的大力支持,在此表小感谢最后,希望读者阅读本书后能有所收途。由于I技术发展的日新月异,新的技术术语层l1不穷,且译者水平有限以及时间仓促,因此,本书许多译名仅供读者参考。译者门知专业水平及驾驭中英文的能力冇限,译文中定有欠妥或锆误之处,恳请读者给以指正苘介简介,通 nternet,我们可以得到海号的信息,包话今大新闻,则待的邮包前所在的位咒,路晚比赛的结果,或者你的公可当前的股票值。打你熟悉的浏览器,所冇这出信恩只需轻轻点击鼠标就能获得。儿所们当前的科都能在网卜找到,你耍儆的就是如何去发现它Internet.的尺多数信息鄙由树络州户生成,义被其他测终用使用,因此,Web面通常设计成吸用户访问的结构。这是Web惟用途吗?网络用户是…个Web站点性的服务对象吗实际上,一类全靳的web用户止在逐渐壮大,这些用广是计算杋程序,它佾和使用浏览器的人类·样具各访问web的能力。这程序有很多名称,不同打名称反映了它们各H所能亢成的不同特殊功能。 Spider(网终蜘蛛程序)、Bot(测络机器人程!)、 Aggregator(闵络信息搜集器), Agent(网络代理程序). Intelligent Agent(智能刚终代理程序)都是警遍使用的木语,代表一些具备Web智能计算机程厅。阅读本书以后,我们可以学会如何创建这比 Interme程序。书还分析∫它们之间的不同点,以及说明了每种程序的优点。图11描述了这些程序的层次结构Bo程序种“有意识”的 Intermet程序,能从指定的 Internet阽点1柃紫信息Agent程序种逼过Hp训练后能查找出用感兴趣的特定仁息的种序tr程序Sper程序一种Bot程,从很多含相似内容的We攻上£取综合种戈业化的Bo稈序,所」查找大的Web而、 Spider以、并将这些数据以华中序事先并不知道将砦査询的虫而+程过1-一个页面的询结果找卜呗而KBo, Spider, Aggregator和 Agent程序什么是Bo程序Bot是 Internet智能科最箭单的形式,E的名了米源于机器人这·本语.枧器人是指能爪扣红性作的设备,其」软件的札器人,閃络蜢虫,坎工作方式也和流水线卜:L冈络机器人]ava编桯指南断焊接同样装暇的机器人·样、它们被和搾制反复执行样的任务E:何·种能访间 ternet,并取数据的行都司以被称为Bot积, Spider、Agent、 Aggregator INtelligent Agent都是々项Bot科。在東屿方面,Bot!类個具有宏功能的计算札程!,如 Microsoft word,给川提供∫录功能。这此宏允许币放系列命令,以心成軍复州的仟务。个Bot序实质上就是个宏,设计用束}找个或多个Web贞面,并从中摘录柑关信息intermet使」很多Bot程序实例,例姐,搜索小擎经常就是利用Bot朴}检査它们J站列表,并除那些已不存在的站点;金融软作会发们检索收攴斧额和荣报价,面川积序会检査 Hotmail! Yahoo邮箱账号.用户有邮件时,它会显示个图在20012月发行的 Windows升发者杂,( Windows Developer's Journal)」,我发个很简单的程序库,用来创建Bot程序。之后我收到了很多读占的来信,告诉我他们利川我的基僦库开发的有趣的应用。我的眼睛捕捉到这样个应用:一位父亲想为他儿」的凵买-榘非常受欢迎,并且是刚发布的视频游戏操纵台。作为传的·部分,家在 Internet站点上设了几台这种游戏操纵台,作为一个拍致条鬥,第·个看见这条标注的人将得到这个游戏操纵台。这位父旅在我日版的代的础上,编与了一个Bot程产,程序会在拍卖站轮询,等待新的操纵台现。当Bot程厅看到待售的浙游戏操纵台出现的瞬阃,它江刻触发一系列动作,保证∫竞标成功。这个计划腼利实施,他儿子也待到了游戏操纵台。这位父咔常高兴,他把关于我的Bot和序独一无一的应用写信告诉了我,如果我在乃里州的话,他甚全会邀请我来…局游戏。这个故半引出了·个应用Bot程的重娑话题,使用Bot程序是个合法?你可以发现此站点采用了特殊的措施来限制Bot程序的用途。例如,有些股票的开盘站点灯果检测到Bot时,它们将不显任何数据。其他一些站点叮能会在它们的服务条款或许可协议中明令止:使用Bot程序。为了防止Bot程员不理睬这些服务条款、有的站点甚至两种厅法都使用f徂!是,不允许使川Bot程序的站点还是少数。第12章“负贲仟地使用Bot程序”将从道德和祛律角度出发,详细讨论关于Bot程序的用法昏告:作为一个 Spider,Bo或 Aggregator棂序的作者,你必須确保你的Bo程序搜索获得的数据是合法的,如果你执行程序的时侯还有疑问,应该询问一下站占的主人或摔师。什么是 Spider程序恻终蜘蛛程序的名起源于昆界的蜘蛛:蛛蛛吐完丝后,就在乂人乂复杂的蜘蛛上:旅行,从这根丝爬到那根丝。和昆虫界的蜘蛛类似,个用讣算机处理的蜘蛛邗萨从连网的这端移幼到邡端。Spider序字是一种专业化的机器人程序,々门设计用来做基J内容的站点查找, Spider程序从个或几个简单的web嗄而]开始执行,然后这些貞而被扫描,索引到∫他啶血,Spider程再访问这些Web页面,无休止地继续重复上面的过程,直到没有新面的索出现f,这个程厅才停小,这个过程不会尢休止地进行,这是闪为 Spider*被强道香找指定站点,没有这种强辽, Spider程不太可能成低务,如米-个 Spider程序没有受制于·个站点的话,除作它坊了联网上的每·个站点,忄则它不会停小次苘介3Internet搜索引擎代表」 Spider梐|的应用。索引擎使川户能通过输入儿个关键κ指定Web点的搜索,为完成站点的忄,搜索引擎必颁从一个站点食到分个站点,以匹配这屿关键最初搜索引整l以川广等待结的时恢,它在站点来川校,们是很快这和做法就变得不切饮际,很简单,|为有太多的Wb站点荽访问。出这个原因大型的数拈痄被保仵下来,川」做web站点与关键之的交义对照。搜索引擎公曰,如Google公的,它们就利川 Spider来遍历Web点,以创建维持这些人型的数据库Spider的力…个常见用法是Web站点的快射个 Spider和可以扫描Web站点的主,通过这些页曲,它能扫描*个站点,得到这个站点使川的所有文代的清单。有个 Spider程厅遍历你片心的站点很有用,因为这种探察能揭小’站点结构相关的信息,例如, Spider能扫描出中断链接,甚至查出拼号借误什么是代理或智能代理程序Merriam- Webster的学院宇典是这么定义代理的;个人代表另一个人行动成从事商业活动。例如,个文代理就是代表作者处埋很多出版商交易事务的人。简单地说,…个用计算机处門的代理程序能访问Web站点,并能为特殊的用户从事交易活动,例如代理积能出售块投资位置,以应对其他事件。代P程的常见用法还包括“计算机研究助雎”这种代程序知道丰人对哪种类型的事情感兴趣,当线路有这类事情出现时,代和序会为E人抓住这哇事情。代理程序有人的薜力,但是它们还没有得到大模的应用,因为要编写真正功能强人而且通用的代栏序,需要达到人工智能级别的编程水平,现在还达不到这个程度。在智能代理程序和常规代理科序之有一个区别,非智能代理程序就是一个Bo程广它的科序事先编制的信息对其主控用来说是惟一的。大部分新闻剪辑代理就是非昝能代揶,它们的工作方式是这样的:它们的主控用户编制好一系刘关键宁和新闻信息源,程序只打描这些内容就可以智能代理程序足使用了AI( Artificial Intelligence,人工袢能)技术编写的Bot程,它能更谷易地适应主挖用卢的需求。如果这个代用和子用来剪辑文章,那么主控用户可以通过知道哪些文章有用,哪些没用,来训练代理程子。使用A模式认別算法,代埋利会试去识别以后遇到的与主控用户的要求近似的文章。说明:本书明确是关于 Spider、Bot和 Aggregator序的内容,它们都是直接处理We页面的Bot程序智能代理酲序能基于用户的训练做选择,这不仅是一个硎eb篇程的主题,更是一个A的主題由于本书主要安排的是直接与Web洲览桐关联的Bot类型,将不包含智能代理的内容什么是 Aggregator程序聚集是川几个小对象创建-个组合对泉的过程。川计算机处理的聚集过程做同样的事5 Internet户纶常有儿个类似的账号,例如,一般用户都有几个银行账号,所有这些账号能会在不环境中使用,并且使坩各白的用户ID和!1令保扩每-个账号Aggregator允许用川用条简明的语付浏览所有这些信息。 Aggregator i程就是种BOt设计川来录儿个用户账号,开索出相类似的息、通常Bot程j和 Aggregator的别可以理解成卜面这个实例的情况:如个程序被设计用来取得某·*定的很同络机器人]ava縞程指南行账号,那么它可以看成是Bot科厅;而岡杵的序如果功能延伸到取得儿个银行账’的亻,那这个程可以看成是 Aggregator序今天已经有很多 Aggregator)实例,金融软件(例如 Intuit的 Quicken和 MicrosoftMoney)能够集巾查看用户的金融和信川账1息。某屿电子邮件扌描软件能告诉你儿个线邮箱甲是不冇消息在等你收阅说明Yodlee(http:/www.yodlee.com是一个专门研究聚集的Web站点。使用Yodlee的用户可以简单地浏览到他们所有的账户信包 Rodeo独一无二的地方在于它能聚集如此之多的不同账尸类型Java编程语言由 T Java语言能!较理想地实现 Internet編程,所以木书蓍重选择Jaⅵa程序设计语言作为计算机语吝讲解实例。许多其他语言要巾第三方护展的編程技术,对于Java编程语占都足木身的一部分。Java提供了·整套供 Intemet积序员使用的类,Java不是实现木书所能用的性一话言,因为木书所展现的网络机器人技术是通用的技术匕超越了Java编程语言的范围,这据小的技木也能应用于C+、Ⅴ ual basic、 Delphi,或其他面向对象的程序设计语言。另外,此程厅设计语言县备使用Java类的功能。木提供KBot包可以很容易地应用于这类语言环境中本书在内容安排上假设你心经对Java程序设计语言比较熟悉,们不要求有Java语言专家级的知识,书屮的所有内容不会超出Java基本编程的范围。例如,你不需要懂套接字或Http,不过你需要熟练掌握如何在你的计算机平台上编译和执行Java程序。要达到这种程度,推荐一本较好的aa参考书—《Java2 Complete》( Sybex公可199}版),以作为本书理想的配套所籍。木书是采用Sun公司的DK13(J2SE版本)编写的,每一个例程以及核心程序包都包含基于 Window和Umx平台创建的脚木文件,不过DK不是编译这些文件的惟一方法。很多公司都开发出了叫亚E( Integrated Development Environment,集成开发环境)的卢品,它提供了能创建和执行Java代码的图形化开发坏境读者使用木书时,不需要IDE环境,但是本书提供了所有在 WebGain的 Visualcaf中使用的必需的工程文件。源代杩和仼何攴持JDK1.3的DE兼容。一旦建立起工程文件,其他的DE〔如Fote、 JBuilder和 Code warrior)也都能支持。 Microsoft visual j++只支持Java的l.1版,所以在其平台上运行本书的代码会遇到很多间题。不太清楚写完这本书以后Microsoft公可是否打算继续支持护展水J++本书特色作为个读者,我一直觉得对我坛有用的书是那些既讲授新技术、又提供仝套科广库来演示这顶新技术的书,这种方式让我带若工具箱迅速掌握这项正在讨论的技术,然后,随石我对新技术应用的深人,逐渐领会了中试图传授给读者的潜在技术。木书的结构就是如此,它为读者提供了两个关键内容重用的Bot、 Spider和 Aggregato程包(以后统称为Bot包),它可以应用何Java或JP程序设计中,这个程序包附在逃配的光盘中
下载地址
用户评论
码姐姐匿名网友 2019-05-15 08:11:12

非常老的书籍了,现在市面上基本找不到销售的地方了,书中的技术细节算是过时了,不过其中的设计思想和理念还是有些帮助的