网络爬虫的设计
网络爬虫的设计与实现
王 娟,吴金鹏
()贵州民族学院计算机与信息工程学院,贵州贵阳550025
摘 要:搜索引擎技术随着互联网的日益壮大而飞速发展。作为搜索引擎不可或缺的组成部分,网络爬虫的作用显
它的性能直接决定了在庞大的互联网上进行网页信息采集的质量。设计并实现了通用爬虫和限定爬得尤为重要,虫。
关键词:网络爬虫;通用爬虫;限定爬虫
()中图分类号:TP393 文献标识码:A 文章编号:167278002012004013602---
先爬虫就是从一系列的种子节点开始,把这些网页中的
0 引言
网络爬虫也称网络蜘蛛,它为搜索引擎从万维网上下载网页,并沿着网页的相关链接在W是一eb中采集资源,
也是搜索引擎的重要组个功能很强的网页自动抓取程序,
成部分,爬虫设计的好坏直接决定着整个搜索引擎的性能及扩展能力。
网络爬虫按照系统结构和实现技术,大致可以分为:通用网络爬虫、主题网络爬虫、增量式网络爬虫、深层网络爬虫。实际应用中通常是将几种爬虫技术相结合。
“子节点”提取出来,放到队列中依次进行抓取。被访问过过程如图2所示
。
的节点放入到另一张表中,
图1 通用爬虫工作流程 图2 宽度优先爬虫过程
1.3 爬虫队列设计
爬虫队列设计是网络爬虫的关键。因为爬虫队列要
1 通用爬虫的设计与实现
1.1 工作原理
所以依靠本地链表或者队列肯定是不存储大量的URL,够的,应当寻找一个性价比高的数据库来存放URL队列,BerkeleDB是目前一种比较流行的内存数据库。根据爬y
虫的特点,Hash表成为了一种比较好的选择。但是在使用Hash存储URL字符串的时候常用MD5算法来对URL进行压缩。在实现了爬虫队列之后就要继续实现Visited表了。如何在大量的UR哪些是被访问过L中辨别哪些是新的、)。的呢?通常使用的技术就是布隆过滤器(BloomFilter 利用布隆过滤器判断一个元素是否在集合中是目前比较高效实用的方法。1.4 设计爬虫架构
通用网络爬虫根据预先设定的一个或若干初始种子以此获得初始网页上的UR在爬行过URL开始,L列表,
程中不断从UR进而访问并下L队列中获一个个的URL,载该页面。页面下载后页面解析器去掉页面上的HTML标记后得到页面内容,将摘要、URL等信息保存到Web数据库中,同时抽取当前页面上新的UR保存到URL,L队列,直到满足系统停止条件。其原理如图1所示。1.2 爬行策略
为提高工作效率,通用网络爬虫会采取一定的爬行策略优先爬取重要的网页。常用的有深度优先和宽度优先策略。宽度优先算法的设计和实现相对简单,可以覆盖尽可能多的网页,是使用最广泛的一种爬行策略。
一个爬虫如何利用宽度优先遍历来抓取网页呢?在爬虫中,每个链接对应一个HTML页面或者其它文件,通
。整个宽度优常将HTML页面上的超链接称为“子节点”
爬虫框架结构如图3所示
。
图3 爬虫结构
,,作者简介:王娟(女,湖南邵东人,硕士,贵州民族学院讲师,研究方向为数据挖掘、网络安全;吴金鹏(男,山西晋中1983-)1989-)
人,贵州民族学院本科生,研究方向为计算机科学与技术。
第4期 王 娟,吴金鹏:网络爬虫的设计与实现·137·
其中:LFrontier含有爬虫当前准备抓取的①UR 根据给定的URURL;NS解析模块用来解析域名(L②D
;决定从哪个Web获取网页)③解析模块提取文本和网页的链接集合;④重复消除模块决定一个解析出来的链接是否已经在URLFronier或者是否最近下载过。
下面通过实验来比较一下我们设计的爬虫抓取网页见图4、图5
。
与原网页的对比,
IP地址:210.40.132.8
贵州大学:
主机域名:www.zu.edu.cng
210.40.0.58IP地址:根据UR就要根据IL得到IP地址之后,P地址对某一地区的IP作出限制。但是需要有一个IP与地区对应网上很多这样的数据库都是收费的,在此我们的数据库,
使用的是腾讯公司推出的一款免费数据库“QQWr.y”,只要输入IP地址就可以查到对应IP地址所在的区dat域。
图4 原网页 图5 抓取网页
输入:210.40.0.58输出:
贵州省贵阳市:贵州大学输入:210.40.132.8输出:
贵州省贵阳市:贵州民族学院
根据I将限制地区的IP地址制作一张列表,P地址写爬虫如果检测到要抓取的I就入列表,P地址属于该列表,放弃抓取,这样一个限定爬虫就完成了。
通过比较可以发现,由于原网页有动画等多媒体元素,虽然爬虫无法抓取下来全部内容,但基本上是一个完整的爬虫。
2 限定爬虫的设计与实现
限定爬虫就是对爬虫所爬取的主机的范围作一些限制。通常限定爬虫包含以下内容:①限定域名的爬虫;②限定爬取层数的爬虫;P的抓取;③限定I④限定语言的抓取。
限定域名的抓取,是一种最简单的限定抓取,只需要根据当前URL字符串的值来作出限定即可。
限定爬虫爬取的层次要比限定域名更复杂。限定IP是限定抓取中最难的一部分。通常分为限定特定IP和限定某一地区的I只要通过P。限定特定IP抓取较为容易,如果主机IURL就可以获得主机IP地址,P在被限制的
列表中就不抓取。否则正常工作。
想要限定I首先要根据主机字符串获得IP抓取,P地址。下面我们通过实验来得到IP地址:
贵州民族学院:
主机域名:www.znc.edu.cng
3 结束语
本文介绍了爬虫的工作原理,重点介绍了通用爬虫和并通过实验证明本文设计的爬虫限定爬虫的设计及实现,可以达到预期效果。
参考文献:
[]]何国辉,吴礼发.网络爬虫技术的研究[电脑知识与技1J. 孙立伟,
()术,201015.
[]]于洪波.网络爬虫技术研究[东莞理工学院学报,2J.2011 于成龙,
()3.
[]自己动手写搜索引擎[北京:电子工业出版社,3M].2009. 罗刚.[]]()网络爬虫的设计与实现[电脑知识与技术,4J.200911. 唐波.[]搜索引擎中网络爬虫的研究[武汉:武汉理工大学,5D].2010. 龚勇.
(责任编辑:杜能钢)
TheDesinandImlementationofWebCrawler gp
:,AbstractWiththerowinofInternetsearcheninetechnolodevelosraidl.Asanindisensableartofsearchen -ggggyppypp
,,inewebcrawlerisarticularlimortantitserformancedirectldeterminestheualitofatherinwebaeinforma -gpyppyqyggpg tioninlareInternet.Thisaerdesinsandimlementseneralcrawlerandlimitativecrawler. gppgpg
:W;;KeWordsebCrawlerGeneralCrawlerLimitativeCrawler y