`

网络爬虫基本原理(二)

阅读更多
四、更新策略
    互联网是实时变化的,具有很强的动态性。网页更新策略主要是决定何时更新之前已经下载过的页面。常见的更新策略又以下三种:
    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-232 之间的某个数。而将这个范围平均的分配给m台服务器,根据URL主域名哈希运算的值所处的范围判断是哪台服务器来进行抓取。
    如果某一台服务器出现问题,那么本该由该服务器负责的网页则按照顺时针顺延,由下一台服务器进行抓取。这样的话,及时某台服务器出现问题,也不会影响其他的工作。
 

参考书目:

1.《这就是搜索引擎——核心技术详解》  张俊林  电子工业出版社

2.《搜索引擎技术基础》         刘奕群等 清华大学出版社









  • 大小: 126.7 KB
  • 大小: 236.3 KB
  • 大小: 159.6 KB
  • 大小: 163.7 KB
  • 大小: 129.4 KB
1
6
分享到:
评论

相关推荐

    爬虫基本原理.

    爬虫基本原理.

    网络爬虫基本原理.pdf

    网络爬虫基本原理.pdf网络爬虫基本原理.pdf网络爬虫基本原理.pdf网络爬虫基本原理.pdf网络爬虫基本原理.pdf网络爬虫基本原理.pdf网络爬虫基本原理.pdf网络爬虫基本原理.pdf

    采集基本概念--网络爬虫的基本工作原理.pdf

    采集基本概念--网络爬虫的基本工作原理.pdf采集基本概念--网络爬虫的基本工作原理.pdf采集基本概念--网络爬虫的基本工作原理.pdf采集基本概念--网络爬虫的基本工作原理.pdf采集基本概念--网络爬虫的基本工作原理.pdf...

    网络爬虫基本原理.doc

    网络爬虫基本原理.doc

    爬虫基本原理.pptx

    内容概要:本资源详细讲解了爬虫的基本工作原理,怎样抓取数据,怎样解析数据,各种数据格式的处理,解析方式,JavaScript渲染的问题,如何保存数据等等 适用人群:对爬虫感兴趣;Python开发者;有一定网络基础 使用...

    网路爬虫基本原理

    适用于想学习爬虫的人,主要介绍爬虫的基本原理,适合初级使用者

    自己动手写网络爬虫.pdf

    《自己动手写网络爬虫(附光盘)》在介绍基本原理的同时注重辅以具体代码实现来帮助读者加深理解,书中部分代码甚至可以直接使用。《自己动手写网络爬虫(附光盘)》适用于有java程序设计基础的开发人员。同时也可以...

    零基础网络爬虫工程师教程

    本课程属于小肩膀教育《零基础一站式网络爬虫教程》的网络爬虫部分,会从爬虫基本原理讲起,之后讲解各种爬虫需要的工具包,比如requests、bs4、xpath和正则表达式。接着讲解常规的网络爬虫技术,包括文字、图片、...

    网络爬虫Java实现原理

    “网络蜘蛛”或者说“网络爬虫”,是一种能访问网站并跟踪链接的程序,通过它,可快速地画出一个网站所包含的网页地图信息。本文主要讲述如何使用Java编程来构建一个“蜘蛛”,我们会先以一个可复用的蜘蛛类包装一个...

    全栈性能java网络爬虫从入门到精通实战.pdf

    全面总结概括爬虫的基本原理以及应用,特别是对java有一定基础的人更容易上手。由于它在业界得到广泛的认可的是爬虫爱好者必备的武功秘籍。

    自己动手写网络爬虫_附全书源码

    《自己动手写网络爬虫》作者:罗刚,介绍了网络爬虫开发中的关键问题与Java实现。...《自己动手写网络爬虫》在介绍基本原理的同时注重辅以具体代码实现来帮助读者加深理解,书中部分代码甚至可以直接使用。

    C++网络爬虫项目

    以上所述仅仅是网络爬虫的一般性原理,具体实现过程中还可以有很多优化的 空间,比如将“网页下载”以多线索(进程或线程)并发的方式实现,甚至将 “DNS解析”也处理为并发的过程,以避免爬虫系统的I/O吞吐率受到...

    52讲轻松搞定网络爬虫.txt

    专栏从基础知识点讲起,通过样例代码,帮你搞懂基本用法和原理。每个知识点会结合实际案例,手把手带你进行爬虫实操,加深你对爬虫技术的理解。 学了这个专栏之后,你能轻松过掌握当下优秀爬虫所用到的必备技术,...

    2024计算机搜索链接Java网络爬虫(蜘蛛)源码.zip

    使用场景及目标: 本文旨在帮助读者了解Java在网络爬虫领域的实际应用,通过阅读和理解爬虫的源码,读者可以掌握网络爬虫的基本原理、数据抓取、解析和存储等关键技能。此外,该爬虫可以作为毕业设计、课程项目或...

Global site tag (gtag.js) - Google Analytics