基于OPIC搜集策略的网络爬虫的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于OPIC搜集策略的网络爬虫的设计
郭海燕1
(西安电子科技大学 计算机学院 西安710071)
摘 要:介绍了一种基于OPIC搜集策略的网络爬虫的设计及其C++实现。提出了网络爬虫设计中数据结构、系统功能模块和相关算法的设计思想; 对设计与实现过程中需要解决的关键问题进行了讨论,并提供了现阶段的设计和实现方法。
关 键 词:网络爬虫,Web信息搜集,搜索引擎
Design of a Web Crawler based on OPIC
Strategy
GUO Hai-yan
(Xidian University,School of Computer Science and Technology,xi’an 710071)
Abstract: Web crawler is the core component of WWW search engine and information retrieval systems。This paper discussed the architecture of a Web crawler and the design ideas about the Web crawler data structure, system modules and related algorithms. The key problems encountered in the design and implementations were also commented, and the solutions to those problems were presented.
Key words:Web crawler; Spider;Web crawling;search engine
1.前言
Web信息的急速膨胀,使人们在对它的有效使用方面面临巨大的挑战,因此以Web搜索引擎为主的检索服务应运而生。作为搜索引擎的重要组成部分,网络爬虫对于检索质量发挥着重要的作用。网络爬虫通过Web页面之间的链接关系,从Web上自动地获取页面信息,并且随着链接不断向整个Web延伸。
本文介绍了基于OPIC搜集策略的网络爬虫的架构,并给出了系统的详细功能设计。
2.网络爬虫的系统结构
如图1所示,网络爬虫基本上可以划分为九个部分: 网页抓取控制器,URL提取器,URL解析器,优先级计算器,Robot协议分析器,重复内容检测器,DNS缓存,URL优先队列和网页库。它们协调起来从We b 上获取信息,图中的箭头表示数据走向。
当网络爬虫开始工作时,首先启动多个线程,将由用户提供的种子URL 装入内存并进行 DNS 解析,通过 SOCKET 建立和服务器的 HTTP 连接,然后发送 HTTP 请求并接受服务器的反馈信息。接下来通过分析和提取新网页内容的 URL 并通过重复内容检测器将新的 URL 加入 URL 优先队列,重
1郭海燕(1983-),女,河北省宣化县人,在读硕士,研究方向:计算机网络与信息处理。
复进行以上的抓取工作,直到符合终止条件时停止。
图1 网络爬虫的系统结构
3.网络爬虫的主要数据结构
3.1 元数据
所有的Web网页和网站的元数据被存放在固定大小的记录里。该记录包含了网页或网站除了URL和网页内容以外的所有信息。有两个文件:一为网站的元数据,使用网站ID进行排序,一个是网页的元数据,按网页文件的ID排序。存储为一个网页的元数据,包括①网页的标识,网页ID,这是识别一个网页的唯一标志。②HTTP响应头和响应码以及返回MIME类型。③网络连接速度的状态和网页下载的延迟。④第一次和最后一次访问时间,在总的访问次数中,页面变化的次数和不变的次数。这是估计网页新鲜度的参数。⑤网页内容的元数据,包括网页内容的长度和网页内容的哈希值,如果该网页经检测是一个重复网页,还要记录原始网页的ID。⑥页面的分数PageRank。
目前存储一个网站的元数据包括:①网站的标识,网站ID。②DNS解析出的IP地址。③网站分数SiteRank,它是该网站所有页面的PageRank之和。
3.2 网页内容
Web网页的内容存储在可变大小的记录中,使用网页文件ID进行索引。插入和删除是使用空闲链表最先适应分配算法。这个数据结构也实现了重复检测:每当一个新的文件被存储,该页面内容的哈希值就被计算。如果有另一个文件具有相同的哈希值和文件长度,将会对文件的内容进行比较。如果他们是一样的,将会返回原始页面的文件ID,并且把新的页面标记为重复的。
给定网页内容和ID,存储网页文件的过程为:①文件内容的检查使用散列表。如果有网页内容与该网页相同,就把新的页面标记为重复的,并且返回原始页面的文件ID。②在空闲链表中查找一个空闲并且足够大的块并返回一个文件偏移量,这个偏移量指向这块可用空间。③把这个偏移量写入索引,将成为当前网页文件的偏移量。④将该文件内容在指定偏移量处写入磁盘。
3.3 URL
在网络爬虫抓取过程中URL 的结构是高度优化的:①要根据网站的名称,得到其网站的ID 。②根据网站的ID 和一个相对URL 地址,得到这个URL 所代表的文件ID 。③根据一个完整的URL ,得到其网站的ID 和文件ID 。具体实现使用两个哈希表:一个是把网站名称转换成网站ID ,另外一个是把“网站ID+相对路径”转换为文件ID 。一个完整的URL 的转换过程如图2所示。
)
图2 URL 的转换过程4.核心功能模块 4.1网页抓取控制器
系统管理员可以在网页抓
取控制器中设定抓取的起始URL 集合、 使用的线程数,抓取深度等参数。
该部件是Robot 的核心部分,主要负责控制各模块的执行和数据流的方向。该模块主要实现两个调度机制,即服务器调度机制和网页调度机制。服务器调度机制负责控制对服务器的访问次序,以均衡各服务器负载,避免因访问过频而导致服务器崩溃的问题。网页调度机制则负责控制对网页的访问次序。它通过优先级计算器对网页按其重要程度排序,实现在有限的时间内采集到尽可能多的相对重要的信息,以体现网络爬虫的智能性和高效性。
4.2 URL 提取器
对于采集到的页面. 经过重复内容检侧后, 需要分析并提取其中的链接,这些任务由URL 提取器来完成。提取器的工作过程如图3所示。
图3 URL 提取过程
4.3优先级计算器
这个部件主要是给待抓取的URL 排序,并根据
一定的策略向网页抓取控制器分配URL 。网页重要
程度的计算使用自适应在线页面重要程度计算
(OPIC )策略,该策略的计算过程是这样的:抓取
开始时,所有网页拥有同样大小的“分数” ,代表该
网页的重要程度,每当抓取一个网页时,它的“分数”
就分配给它指向的网页。一个未被抓取的网页的优
先级是指向它的网页分配给它的“分数”之和。这个
策略类似于PageRank ,但是它没有随机的链接并
且计算不需要迭代,所以速度很快。