欢迎来到天天文库
浏览记录
ID:15528550
大小:144.50 KB
页数:30页
时间:2018-08-03
《网络爬虫技术浅析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、网络爬虫技术浅析分类: java 网络爬虫2012-08-1815:09 1641人阅读 评论(0) 收藏 举报网络爬虫搜索引擎url算法服务器数据库在万维网飞速发展的网络背景下,搜索引擎在人们的生活工作中无疑扮演着重要的角色,而网络爬虫则是搜索引擎技术的最基础部分。一、网络爬虫概述在搜索引擎成为主流检索工具的今天,互联网上的网络爬虫各式各样,但爬虫爬取网页的基本步骤大致相同:1) 人工给定一个URL作为入口,从这里开始爬取。万维网的可视图呈蝴蝶型,网络爬虫一般从蝴蝶型左边结构出发。这里有一些门户网站的主页,而门户网站中包含大量有价值的链接。2) 用运行队列和完成队列来保存不同状态的
2、链接。 对于大型数据量而言,内存中的队列是不够的,通常采用数据库模拟队列。用这种方法既可以进行海量的数据抓取,还可以拥有断点续抓功能。3) 线程从运行队列读取队首URL,如果存在,则继续执行,反之则停止爬取。4) 每处理完一个URL,将其放入完成队列,防止重复访问。5) 每次抓取网页之后分析其中的URL(URL是字符串形式,功能类似指针),将经过过滤的合法链接写入运行队列,等待提取。6) 重复步骤 3)、4)、5)。 1.1网页搜索策略万维网高阔无边,为了最大限度利用有限的资源,我们需要进行资源配置,并运用某些策略使爬虫优先爬取重要性较高的网页。目前主流的网页搜索策略主要有三,
3、即:深度优先、广度优先、最佳优先。 深度优先,即从起始网页开始,选择一个URL,进入,分析这个网页中的URL,选择一个再进入。如此一个链接一个链接地深入追踪下去,处理完一条路线之后再处理下一条路线。有一个例子是:在封建制度中,封建帝王的继承制度是长子优先级最高,长孙次之,次子随后。即如果长子去世,那么长孙的优先级比次子高。该类爬虫设计时较为简单。然而深度优先型网络爬虫存在一个问题:门户网站提供的链接往往最具价值,PageRank也很高,而每深入一层,网页价值和PageRank都会相应地有所下降。这暗示了重要网页通常距离种子较近,而过度深入抓取到的网页却价值很低。由于这个缺陷,广度优先
4、策略产生了。 广度优先(又称宽度优先),即从起始网页开始,抓取其中所有链接的网页,然后从中选择一个,继续抓取该网页中的所有链接页面。网络爬虫在抓取网页时普遍采用这种策略,这其中有两个原因:第一,万维网的实际深度最大能达到17层,网页之间四通八达,因此存在从一个网页到另一个网页的最短路径问题。如果采用深度优先,则有可能从一个PageRank很低的网页爬取到一个PageRank实际很高的网页,不方便计算PageRank(个人理解)。第二,采用宽度优先策略有利于多个爬虫并行爬取。这种多爬虫合作抓取通常是先抓取站内链接,遇到站外连接就爬出去,抓取的封闭性很强。广度优先策略的优点在于其设计和实
5、现相对简单,且这种策略的基本思想是:与种子在一定距离内的网页重要度较高,符合实际。在聚焦爬虫的应用中,广度优先策略可以与网页过滤技术结合,即先用广度优先抓取一些网页,再将其中与主题无关的过滤掉。但这种方法的缺点是随着抓取网页的增多,算法的效率会变低。 另外,还有一种常用于聚焦爬虫的网页搜索策略——最佳优先策略。最佳优先,即按照某种网页分析算法预测候选URL与目标网页的相似度,或主题的相关性,并选取其中评价最好的一个或几个URL进行进一步的爬取。这种策略的缺陷是可能会有很多相关网页被忽略,但相对的,这种策略可以将无关网页数量降低30%—90%。 1.2对URL的获取和处理网络爬虫访问的
6、是后台html代码,它分析出URL之后,对其进行过滤并将结果放入运行队列。在取得URL时要提防一种“爬虫陷阱”。因为即使一个URL能访问到相应内容,也不能保证服务器端有一个相应页面存在,例如动态网页的应用可能会使网站中存在一些无法穷尽的地址,让爬虫在一个位置上无限循环而无法终结。针对“爬虫陷阱”,其中一种应对方法是:检查URL长度(或“/”的数量),一旦超出某个阈值就不再获取。 链接过滤处理涉及两个数组,第一个是“必须存在的关键字”组。分析链接时,链接中必须存在这个数组中所有关键字(例如关键字为http和index,则http://www.mysite.com/index符合要求,而
7、http://www.mysite.com/html不符合要求)。另一个是“不可存在的关键字”组。分析链接时,链接中必须不存在这个数组中任何一个关键字(例如关键字为index,则http://www.mysite.com/index不符合要求)。对关键字的过滤方法包括以下两种:1) 只取得包含给定关键字的链接,这样取得的链接为内部链接。2) 只取得不包含给定关键字的链接,这样取得的链接为外部链接。 1.3页面选取问题为提高资源利用率,我们需要尽可能提取最
此文档下载收益归作者所有