网络爬虫的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络爬虫的设计与实现
王 娟,吴金鹏
(贵州民族学院计算机与信息工程学院,贵州贵阳550025
)摘 要:搜索引擎技术随着互联网的日益壮大而飞速发展。作为搜索引擎不可或缺的组成部分,网络爬虫的作用显
得尤为重要,它的性能直接决定了在庞大的互联网上进行网页信息采集的质量。设计并实现了通用爬虫和限定爬虫。
关键词:网络爬虫;通用爬虫;限定爬虫
中图分类号:TP393 文献标识码:A 文章编号:1672-7800(2012)004-0136-
02作者简介:王娟(1983-),女,湖南邵东人,硕士,贵州民族学院讲师,研究方向为数据挖掘、网络安全;吴金鹏(1989-)
,男,山西晋中人,贵州民族学院本科生,研究方向为计算机科学与技术。
0 引言
网络爬虫也称网络蜘蛛,它为搜索引擎从万维网上下载网页,并沿着网页的相关链接在Web中采集资源,
是一个功能很强的网页自动抓取程序,
也是搜索引擎的重要组成部分,爬虫设计的好坏直接决定着整个搜索引擎的性能及扩展能力。
网络爬虫按照系统结构和实现技术,大致可以分为:通用网络爬虫、主题网络爬虫、增量式网络爬虫、深层网络爬虫。实际应用中通常是将几种爬虫技术相结合。
1 通用爬虫的设计与实现
1.1 工作原理
通用网络爬虫根据预先设定的一个或若干初始种子URL开始,以此获得初始网页上的URL列表,
在爬行过程中不断从URL队列中获一个个的URL,进而访问并下载该页面。页面下载后页面解析器去掉页面上的HTML标记后得到页面内容,将摘要、URL等信息保存到Web数据库中,同时抽取当前页面上新的URL,保存到URL队列,直到满足系统停止条件。其原理如图1所示。1.2 爬行策略
为提高工作效率,通用网络爬虫会采取一定的爬行策略优先爬取重要的网页。常用的有深度优先和宽度优先策略。宽度优先算法的设计和实现相对简单,可以覆盖尽可能多的网页,是使用最广泛的一种爬行策略。
一个爬虫如何利用宽度优先遍历来抓取网页呢?在爬虫中,每个链接对应一个HTML页面或者其它文件,通
常将HTML页面上的超链接称为“子节点”
。整个宽度优先爬虫就是从一系列的种子节点开始,把这些网页中的
“子节点”提取出来,放到队列中依次进行抓取。被访问过的节点放入到另一张表中,
过程如图2所示
。
图1 通用爬虫工作流程 图2 宽度优先爬虫过程
1.3 爬虫队列设计
爬虫队列设计是网络爬虫的关键。因为爬虫队列要
存储大量的URL,所以依靠本地链表或者队列肯定是不够的,应当寻找一个性价比高的数据库来存放URL队列,Berkeley
DB是目前一种比较流行的内存数据库。根据爬虫的特点,Hash表成为了一种比较好的选择。但是在使用Hash存储URL字符串的时候常用MD5算法来对URL进行压缩。在实现了爬虫队列之后就要继续实现Visited表了。如何在大量的URL中辨别哪些是新的、哪些是被访问过的呢?通常使用的技术就是布隆过滤器(Bloom Filter)。利用布隆过滤器判断一个元素是否在集合中是目前比较高效实用的方法。1.4 设计爬虫架构
爬虫框架结构如图3所示
。
图3 爬虫结构
其中:①URL Frontier含有爬虫当前准备抓取的URL;②D
NS解析模块用来解析域名(根据给定的URL决定从哪个Web获取网页);③解析模块提取文本和网页的链接集合;④重复消除模块决定一个解析出来的链接是否已经在URL
Fronier或者是否最近下载过。下面通过实验来比较一下我们设计的爬虫抓取网页与原网页的对比,
见图4、图5
。
图4 原网页 图5 抓取网页
通过比较可以发现,由于原网页有动画等多媒体元素,虽然爬虫无法抓取下来全部内容,但基本上是一个完整的爬虫。
2 限定爬虫的设计与实现
限定爬虫就是对爬虫所爬取的主机的范围作一些限制。通常限定爬虫包含以下内容:①限定域名的爬虫;②限定爬取层数的爬虫;③限定IP的抓取;④限定语言的抓取。
限定域名的抓取,是一种最简单的限定抓取,只需要根据当前URL字符串的值来作出限定即可。
限定爬虫爬取的层次要比限定域名更复杂。限定IP是限定抓取中最难的一部分。通常分为限定特定IP和限定某一地区的IP。限定特定IP抓取较为容易,只要通过URL就可以获得主机IP地址,如果主机IP在被限制的
列表中就不抓取。否则正常工作。
想要限定IP抓取,首先要根据主机字符串获得IP地址。下面我们通过实验来得到IP地址:
贵州民族学院:
主机域名:www.g
znc.edu.cnIP地址:210.40.132.8
贵州大学:
主机域名:www.g
zu.edu.cnIP地址:210.40.0.58根据URL得到IP地址之后,就要根据IP地址对某一地区的IP作出限制。但是需要有一个IP与地区对应的数据库,
网上很多这样的数据库都是收费的,在此我们使用的是腾讯公司推出的一款免费数据库“QQWry.dat”,只要输入IP地址就可以查到对应IP地址所在的区域。
输入:210.40.0.58输出:
贵州省贵阳市:贵州大学输入:210.40.132.8输出:
贵州省贵阳市:贵州民族学院
根据IP地址制作一张列表,将限制地区的IP地址写入列表,爬虫如果检测到要抓取的IP地址属于该列表,就放弃抓取,这样一个限定爬虫就完成了。
3 结束语
本文介绍了爬虫的工作原理,重点介绍了通用爬虫和限定爬虫的设计及实现,并通过实验证明本文设计的爬虫可以达到预期效果。
参考文献:
[1] 孙立伟,
何国辉,吴礼发.网络爬虫技术的研究[J].电脑知识与技术,2010(15).
[2] 于成龙,
于洪波.网络爬虫技术研究[J].东莞理工学院学报,2011(3).
[3] 罗刚.自己动手写搜索引擎[M].北京:电子工业出版社,2009.[4] 唐波.网络爬虫的设计与实现[J].电脑知识与技术,2009(11).[5] 龚勇.
搜索引擎中网络爬虫的研究[D].武汉:武汉理工大学,2010.(责任编辑:杜能钢)
The Design and Imp
lementation of Web CrawlerAbstract:With the growing of Internet,search engine technology
develops rapidly.As an indispensable part of search en-gine,web crawler is particularly important,its performance directly determines the quality of gathering webpage informa-tion in large Internet.This paper designs and implements g
eneral crawler and limitative crawler.Key
Words:Web Crawler;General Crawler;Limitative Crawler·
731·第4期 王 娟,吴金鹏:网络爬虫的设计与实现