- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《如何用java编程构建“网络爬虫”》.pdf
爱博文资料下载网
提供海量资料满足您的求知欲!欢迎常去光顾哦!
本站所有资源部分转载自互联网!版权归作者所有!
如何用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
类就能把相关信息反馈给创建它的程序了。
爱博文资料下载网
提供海量资料满足您的求知欲!欢迎常去光顾哦!
本站所有资源部分转载自互联网!版权归作者所有!
在begin 方法被调用后,“蜘蛛”就开始工作了;为允许程序重绘其用户界面,“蜘蛛”
是作为一个单独的线程启动的。点击“Begin”按钮会开始这个后台线程,当后台线程运行
之后,又会调用“CheckLinks”类的run 方法,而run 方法是由Spider 对象实例化时启动
的,如下所示:
spider = new Spider(this);
spider.clear();
base = new URL(url.getText());
spider.addURL(base);
spider.begin();
首先,一个新的Spider 对象被实例化,在此,需要传递一个“ISpiderReportable”对象
给Spider 对象的构造函数,因为“CheckLinks”类实现了“ISpiderReportable”接口,
只需简单地把它作为当前对象(可由关键字this 表示)传递给构造函数即可;其次,在程
序中维护了一个其访问过的URL 列表,而“clear”方法的调用则是为了确保程序开始时
URL 列表为空,程序开始运行之前必须添加一个URL 到它的待处理列表中,此时用户输入
的URL 则是添加到列表中的第一个,程序就由扫描这个网页开始,并找到与这个起始URL
相链接的其他页面;最后,调用“begin”方法开始运行“蜘蛛”,这个方法直到“蜘蛛”
工作完毕或用户取消才会返回。
当“蜘蛛”运行时,可以调用由“ISpiderReportable”接口实现的三个方法来报告程序当
前状态,程序的大部分工作都是由“spiderFoundURL”方法来完成的,当“蜘蛛”发现一
个新的URL 时,它首先检查其是否有效,如果这个URL 导致一个错误,就会把它当作一个
死链接;如果链接有效,就会继
文档评论(0)