资源简介
一个简单的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课程设计 蜘蛛纸牌 内含源代码 打
- Java 爬虫图片
- 相似图片搜索原理 Java实现源码
- java利用多线程爬虫查询快递100物流信
- Java实现蜘蛛纸牌.zip
- 百度贴吧java爬虫
- JAVA爬虫批量网页文件
- JAVA爬虫项目源代码
- 基于java爬取网络图片并且保存到本地
- 网络爬虫 Java实现原理
- Java网络爬虫及正文提取
- Android应用源码蓝牙串口搜索配对连接
- 利用JAVA和Floyd算法实现上海地铁最短
- Java爬虫项目
- java小说网站爬虫
- Java WebSocket爬虫
- 基于java的八数码DFS搜索算法以及界面
- 淘宝图片搜索基于Java语言实现的相似
- 最新新浪微博爬虫程序Java版 2015
- webmagic修复HTTPS下无法抓取只支持TLS
- ElasticSearch Java API
- 支持输入筛选的类spinner实现AndroidSt
- java实现搜索引擎
- 搜索引擎 基于java的搜索引擎
- 2017统计局区划编码爬虫
- windows文件内容搜索工具
- python爬虫十万条UA User_Agent信息浏览器
- 2019java爬取国家统计局省市区及编码
- JAVA实现磁力链接搜索
评论
共有 条评论