网络爬虫实验报告 院系:国际教育学院 班级:互联网12—02 姓名:*** 学号:************ “网络蜘蛛”或者说“网络爬虫”,是一种能访问网站并跟踪链接的程序,通过它,可快速地画出一个网站所包含的网页地图信息。本文主要讲述如何使用 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()); spide...