四、更新策略
互联网是实时变化的,具有很强的动态性。网页更新策略主要是决定何时更新之前已经下载过的页面。常见的更新策略又以下三种:
1.历史参考策略
顾名思义,根据页面以往的历史更新数据,预测该页面未来何时会发生变化。一般来说,是通过泊松过程进行建模进行预测。
2.用户体验策略
尽管搜索引擎针对于某个查询条件能够返回数量巨大的结果,但是用户往往只关注前几页结果。因此,抓取
系统可以优先更新那些现实在查询结果前几页中的网页,而后再更新那些后面的网页。这种更新策略也是需要用到历史信息的。用户体验策略保留网页的多个历史版
本,并且根据过去每次内容变化对搜索质量的影响,得出一个平均值,用这个值作为决定何时重新抓取的依据。
3.聚类抽样策略
前面提到的两种更新策略都有一个前提:需要网页的历史信息。这样就存在两个问题:第一,系统要是为每个系统保存多个版本的历史信息,无疑增加了很多的系统负担;第二,要是新的网页完全没有历史信息,就无法确定更新策略。
这种策略认为,网页具有很多属性,类似属性的网页,可以认为其更新频率也是类似的。要计算某一个类别网页的更新频率,只需要对这一类网页抽样,以他们的更新周期作为整个类别的更新周期。基本思路如图:
五、分布式抓取系统结构
一般来说,抓取系统需要面对的是整个互联网上数以亿计的网页。单个抓取程序不可能完成这样的任务。往往需要多个抓取程序一起来处理。一般来说抓取系统往往是一个分布式的三层结构。如图所示:
最下一层是分布在不同地理位置的数据中心,在每个数据中心里有若干台抓取服务器,而每台抓取服务器上可能部署了若干套爬虫程序。这就构成了一个基本的分布式抓取系统。
对于一个数据中心内的不同抓去服务器,协同工作的方式有几种:
1.主从式(Master-Slave)
主从式基本结构如图所示:
对于主从式而言,有一台专门的Master服务器来维护待抓取URL队列,它负责每次将URL分发到不同的Slave服务器,而Slave服务器则负责实
际的网页下载工作。Master服务器除了维护待抓取URL队列以及分发URL之外,还要负责调解各个Slave服务器的负载情况。以免某些Slave服
务器过于清闲或者劳累。
这种模式下,Master往往容易成为系统瓶颈。
2.对等式(Peer to Peer)
对等式的基本结构如图所示:
在这种模式下,所有的抓取服务器在分工上没有不同。每一台抓取服务器都可以从待抓取在URL队列中获取URL,然后对该URL的主域名的hash值H,然
后计算H mod m(其中m是服务器的数量,以上图为例,m为3),计算得到的数就是处理该URL的主机编号。
举例:假设对于URL www.baidu.com,计算器hash值H=8,m=3,则H mod m=2,因此由编号为2的服务器进行该链接的抓取。假设这时候是0号服务器拿到这个URL,那么它将该URL转给服务器2,由服务器2进行抓取。
这种模式有一个问题,当有一台服务器死机或者添加新的服务器,那么所有URL的哈希求余的结果就都要变化。也就是说,这种方式的扩展性不佳。针对这种情况,又有一种改进方案被提出来。这种改进的方案是一致性哈希法来确定服务器分工。其基本结构如图所示:
一致性哈希将URL的主域名进行哈希运算,映射为一个范围在0-2
32
之间的某个数。而将这个范围平均的分配给m台服务器,根据URL主域名哈希运算的值所处的范围判断是哪台服务器来进行抓取。
如果某一台服务器出现问题,那么本该由该服务器负责的网页则按照顺时针顺延,由下一台服务器进行抓取。这样的话,及时某台服务器出现问题,也不会影响其他的工作。
参考书目:
1.《这就是搜索引擎——核心技术详解》 张俊林 电子工业出版社
2.《搜索引擎技术基础》 刘奕群等 清华大学出版社
- 大小: 126.7 KB
- 大小: 236.3 KB
- 大小: 159.6 KB
- 大小: 163.7 KB
- 大小: 129.4 KB
分享到:
相关推荐
爬虫基本原理.
网络爬虫基本原理.pdf
网络爬虫基本原理介绍
采集基本概念--网络爬虫的基本工作原理.pdf采集基本概念--网络爬虫的基本工作原理.pdf采集基本概念--网络爬虫的基本工作原理.pdf采集基本概念--网络爬虫的基本工作原理.pdf采集基本概念--网络爬虫的基本工作原理.pdf...
网络爬虫基本原理.doc
1. **网络爬虫基本原理** 网络爬虫的核心思想是通过入口URL获取更多链接,不断探索和下载新的页面。这一过程包括: - **指定入口URL**:网络爬虫开始时,通常会有一个或多个起始URL,这些URL作为爬取的起点。 - *...
#### 一、网络爬虫基本原理 网络爬虫的基本原理主要包括以下几个步骤: 1. **请求资源**:向目标网站发送HTTP请求(通常是GET或POST请求)以获取网页内容。 2. **解析HTML**:接收服务器响应的HTML文档并对其进行...
"网络爬虫原理" 网络爬虫是一种能访问网站并跟踪链接的程序,通过它,可快速地画出一个网站所包含的网页地图信息。本文主要讲述如何使用 Java 编程来构建一个“蜘蛛”,我们会先以一个可复用的蜘蛛类包装一个基本的...
本篇论文旨在深入探讨基于Web爬虫的基本原理及其新技术,以期为广工学子提供一个全面的学习平台,同时也可供其他有需求的学者参考。 1.1 引言 随着互联网的快速发展,网络信息的多样性和复杂性使得传统的信息检索...
网络爬虫的基本原理涉及其结构、工作流程、网页分类、抓取策略以及更新策略。 首先,网络爬虫通常具有一个基本的工作流程:首先,从互联网上选取一批种子URL,放入待抓取队列。接着,爬虫从待抓取队列中取出URL,...
- 学习爬虫的基本概念、工作原理,理解网络爬虫在大数据分析中的重要性。 - 掌握Python爬虫环境的搭建,学习常见的Python爬虫库。 - 学习爬虫伦理和法规,了解如何遵守网络爬虫的行为规范。 2. **网页前端基础**...
本文档是关于Python网络爬虫的复习大纲,涵盖了爬虫的基本概念、实现原理、技术、网页请求原理、抓取网页数据、数据解析、并发下载、抓取动态内容、图像识别与文字处理、存储爬虫数据、爬虫框架Scrapy等知识点。...
1. **网络爬虫的基本原理**:网络爬虫通常由以下几个部分组成:URL管理器、下载器、解析器和数据库。URL管理器负责跟踪要访问的网页列表,下载器获取网页内容,解析器则从下载的HTML或XML文档中提取有价值的数据,...
本资源详细介绍了爬虫的基本原理,适合对爬虫感兴趣的人群以及Python开发者,特别是那些有一定网络基础的初学者。 首先,爬虫工作流程包括四个主要步骤: 1. **发起请求**:使用HTTP库(如requests)向目标站点...
这些文档涵盖了从基础到进阶的网络爬虫技术,包括Java实现的简单网络爬虫、爬虫的基本原理、搜索引擎的工作方式以及基于Web的爬虫设计等。 首先,让我们从Java网络爬虫简单实现开始。Java作为一种广泛使用的编程...
**6.1.2 网络爬虫基本原理** 网络爬虫的工作流程一般包括:首先,从一个URL池开始,按照深度优先或广度优先的策略选择URL进行处理。爬虫会解析页面内容,提取标题、头部信息和链接,生成摘要,并可能保存页面的全文...