• 大小: 560KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-25
  • 语言: Java
  • 标签: 搜索  蜘蛛  爬虫  

资源简介

一个简单的java网络蜘蛛程序,非常适合初学者

资源截图

代码片段和文件信息

package spider;

import java.util.ArrayList;
import java.util.linkedList;
import java.util.List;
import java.util.Queue;

public class Spider {
private UrlGraphNode root = new UrlGraphNode();// 以图的先宽遍历方式遍历网络
private List history = new ArrayList();// 历史记录,记录访问了哪些网页

public Spider() {
this.root.setUrl(““);
this.root.setLevel(-1);
List ori = new ArrayList();
ori.add(“http://www.163.com“);
ori.add(“http://www.qq.com“);// 以两大门户网站为起点开始遍历
this.root.setLinjie(ori); // 设置初始网页集
}

//爬取函数:蜘蛛会带着关键词key宽先遍历互联网
public void claw(String key) {
Queue queue = new linkedList();// 利用队列对图进行先宽遍历
WebsiteReader wsr = new WebsiteReader();
queue.add(root);// 原始网页集入队 开始遍历
while (!queue.isEmpty()) {
UrlGraphNode t = queue.remove();//队头结点出队
//门户网站链接太多,所以只做两层宽先遍历
if (t.getLevel() < 2) {
for (int i = 0; i < t.getLinjie().size(); i++) {
UrlGraphNode wait = new UrlGraphNode();
boolean notVisited = true;
for (int j = 0; j < history.size(); j++) {
//检查队头的邻接节点(队头结点中的链接指向的网页),如果在历史记录中出现过
//就不再入队
if (t.getLinjie().get(i).equals(history.get(j))) {
notVisited = false;
break;
}
}
//队头结点的邻接结点,也就是该url对应的网页对外链接所指的网页如果没有被访问过,就入队
//下面这个判断是指:第0层是门户网站(初始网页集),无条件进队列
//第一层和第二层的网页,如果未被爬取(打印)过,且title中含有key关键字,则可入队
//本来不论title中是否含有key关键字,只要未记录过,就应该入队,但这样要运行很久
//为了节约时间,只让含关键字的网页入队
if (notVisited 
&& (t.getLevel() < 0 || 
(t.getLevel() >= 0 && null != wsr.gettitle(t.getLinjie().get(i) key) 
    && !(wsr.gettitle(t.getLinjie().get(i) key)).equals(““)))) {
System.out.println(wsr.gettitle(t.getLinjie().get(i)key));//打印爬取结果(下一层的url和title)
history.add(t.getLinjie().get(i));//打印过的爬取结果马上录入历史记录
wait.setUrl(t.getLinjie().get(i));//获取邻接点的url
wait.setLinjie(wsr.getItslinks(t.getLinjie().get(i)));//获取该邻接点网页中的链接
wait.setLevel(t.getLevel() + 1);//设置层数
queue.add(wait);
}
}
}
}
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        634  2013-04-16 11:39  spiderCode\MotianchiSpider\.classpath

     文件        391  2013-04-16 11:12  spiderCode\MotianchiSpider\.project

     文件        629  2013-04-16 11:12  spiderCode\MotianchiSpider\.settings\org.eclipse.jdt.core.prefs

     文件       2284  2013-04-17 01:21  spiderCode\MotianchiSpider\bin\spider\Spider.class

     文件        505  2013-04-17 00:30  spiderCode\MotianchiSpider\bin\spider\Test.class

     文件       1233  2013-04-17 00:26  spiderCode\MotianchiSpider\bin\spider\UrlGraphNode.class

     文件       3925  2013-04-17 00:44  spiderCode\MotianchiSpider\bin\spider\WebsiteReader.class

     文件      67095  2013-04-16 11:38  spiderCode\MotianchiSpider\lib\filterbuilder.jar

     文件      70021  2013-04-16 11:38  spiderCode\MotianchiSpider\lib\htmllexer.jar

     文件     288098  2013-04-16 11:38  spiderCode\MotianchiSpider\lib\htmlparser.jar

     文件     121070  2013-04-16 11:38  spiderCode\MotianchiSpider\lib\junit.jar

     文件      35979  2013-04-16 11:38  spiderCode\MotianchiSpider\lib\sax2.jar

     文件      33277  2013-04-16 11:38  spiderCode\MotianchiSpider\lib\thumbelina.jar

     文件       2795  2013-04-17 01:21  spiderCode\MotianchiSpider\src\spider\Spider.java

     文件        208  2013-04-17 00:30  spiderCode\MotianchiSpider\src\spider\Test.java

     文件        749  2013-04-17 00:26  spiderCode\MotianchiSpider\src\spider\UrlGraphNode.java

     文件       3731  2013-04-17 00:44  spiderCode\MotianchiSpider\src\spider\WebsiteReader.java

     文件      31403  2013-04-17 01:06  spiderCode\搜索结果.txt

     目录          0  2013-04-17 01:33  spiderCode\MotianchiSpider\bin\spider

     目录          0  2013-04-17 01:33  spiderCode\MotianchiSpider\src\spider

     目录          0  2013-04-17 01:33  spiderCode\MotianchiSpider\.settings

     目录          0  2013-04-17 01:33  spiderCode\MotianchiSpider\bin

     目录          0  2013-04-17 01:33  spiderCode\MotianchiSpider\lib

     目录          0  2013-04-17 01:33  spiderCode\MotianchiSpider\src

     目录          0  2013-04-17 01:33  spiderCode\MotianchiSpider

     目录          0  2013-04-17 01:34  spiderCode

----------- ---------  ---------- -----  ----

               664027                    26


评论

共有 条评论