资源简介
一个简单的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
- 上一篇:JAVA2实用教程第5版课后习题电子版
- 下一篇:网络游鱼 多媒体展示系统
相关资源
- java实现的搜索引擎
- 搜索引擎的研究与实现Java附源码
- 基于http的Java爬虫爬取百度新闻
- 微信公众号爬取数据
- 基于JAVA技术爬虫爬网站图片设计与实
- Android 数据抓取实现歌曲在线搜索
- Android+仿微信实现搜索
- Android 百度地图 SDK v3_3_0 五 ---POI搜索
- 仿淘宝、京东历史搜索效果
- 用java实现爬虫抓取网页中的表格数据
- 基于强智科技教务系统学生成绩爬虫
- android 百度地图定位当前位置及POI搜索
- 亿级电商Elasticsearch开发实践-文字版
- android 百度地图显示搜索城市和POI搜索
- java网络爬虫搜索引擎
- jsp搜索引擎完整源码自带网络爬虫功
- Java 感知哈希实现的图片搜索
- 简单的安卓音乐播放器--2.0版本可联网
- Lucene搜索引擎 JSP + JAVA
- SQL注入漏洞检测原型工具
- lucence相关jar包 共7个
- BT磁力搜索器
- java地址转换经纬度
- 用java实现爬虫抓取网页中的表格数据
- java实现的主题爬虫
- Android 根据EditText搜索框ListView动态显
- 基于java的文本搜索引擎的设计与实现
- Android 联系人列表界面仿iphone、A~Z字母
- 爬虫工具,用于获取平行语料
- 知乎爬虫最新版
评论
共有 条评论