如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
http://www.ibwen.com爱博文资料下载网 提供海量资料满足您的求知欲!欢迎常去光顾哦! 本站所有资源部分转载自互联网!版权归作者所有! ------------------------------------------------------- 如何用java编程构建“网络爬虫” 简介 “网络爬虫”或者说“网络蜘蛛”,是一种能访问网站并跟踪链接的程序,通过它,可快 速地画出一个网站所包含的网页地图信息。本文主要讲述如何使用Java编程来构建一个 “蜘蛛”,我们会先以一个可复用的蜘蛛类包装一个基本的“蜘蛛”,并在示例程序中演 示如何创建一个特定的“蜘蛛”来扫描相关网站并找出死链接。 Java语言在此非常适合构建一个“蜘蛛”程序,其内建了对HTTP协议的支持,通过它可 以传输大部分的网页信息;其还内建了一个HTML解析器,正是这两个原因使Java语言成 为本文构建“蜘蛛”程序的首选。 使用“蜘蛛” 文章后面例1的示例程序,将会扫描一个网站,并寻找死链接。使用这个程序时需先输入 一个URL并单击“Begin”按钮,程序开始之后,“Begin”按钮会变成“Cancel”按钮。 在程序扫描网站期间,会在“Cancel”按钮之下显示进度,且在检查当前网页时,也会显 示相关正常链接与死链接的数目,死链接将显示在程序底部的滚动文本框中。单击 “Cancel”按钮会停止扫描过程,之后可以输入一个新的URL;如果期间没有单击 “Cancel”,程序将会一直运行直到查找完所有网页,此后,“Cancel”按钮会再次变回 “Begin”,表示程序已停止。 下面将演示示例程序是如何与可复用“Spider”类交互的,示例程序包含在例1的 CheckLinks类中,这个类实现了ISpiderReportable接口,如例2所示,正是通过这个接 口,蜘蛛类才能与示例程序相交互。在这个接口中,定义了三个方法:第一个方法是 “spiderFoundURL”,它在每次程序定位一个URL时被调用,如果方法返回true,表示程 序应继续执行下去并找出其中的链接;第二个方法是“spiderURLError”,它在每次程序 检测URL导致错误时被调用(如“404页面未找到”);第三个方法是 “spiderFoundEMail”,它在每次发现电子邮件地址时被调用。有了这三个方法,Spider 类就能把相关信息反馈给创建它的程序了。 http://www.ibwen.com爱博文资料下载网 提供海量资料满足您的求知欲!欢迎常去光顾哦! 本站所有资源部分转载自互联网!版权归作者所有! ------------------------------------------------------- 在begin方法被调用后,“蜘蛛”就开始工作了;为允许程序重绘其用户界面,“蜘蛛” 是作为一个单独的线程启动的。点击“Begin”按钮会开始这个后台线程,当后台线程运行 之后,又会调用“CheckLinks”类的run方法,而run方法是由Spider对象实例化时启动 的,如下所示: spider=newSpider(this); spider.clear(); base=newURL(url.getText()); spider.addURL(base); spider.begin(); 首先,一个新的Spider对象被实例化,在此,需要传递一个“ISpiderReportable”对象 给Spider对象的构造函数,因为“CheckLinks”类实现了“ISpiderReportable”接口, 只需简单地把它作为当前对象(可由关键字this表示)传递给构造函数即可;其次,在程 序中维护了一个其访问过的URL列表,而“clear”方法的调用则是为了确保程序开始时 URL列表为空,程序开始运行之前必须添加一个URL到它的待处理列表中,此时用户输入 的URL则是添加到列表中的第一个,程序就由扫描这个网页开始,并找到与这个起始URL 相链接的其他页面;最后,调用“begin”方法开始运行“蜘蛛”,这个方法直到“蜘蛛” 工作完毕或用户取消才会返回。 当“蜘蛛”运行时,可以调用由“ISpiderReportable”接口实现的三个方法来报告程序当 前状态,程序的大部分工作都是由“spiderFoundURL”方法来完成的,当“蜘蛛”发现一 个新的URL时,它首先检查其是否有效,如果这个URL导致一个错误,就会把它当作一个 死链接;如果链接有效,就会继续检查它是否在一个不同的服务器上,如果链接在同一服 务器上,“spiderFoundURL”返回true,表示“蜘蛛”应继续跟踪这个URL并找出
as****16
实名认证
内容提供者
最近下载