`

网络爬虫基本原理(一)

阅读更多

    网络爬虫是捜索引擎抓取系统的重要组成部分。爬虫的主要目的是将互联网上的网页下载到本地形成一个或联网内容的镜像备份。这篇博客主要对爬虫以及抓取系统进行一个简单的概述。

一、网络爬虫的基本结构及工作流程

    一个通用的网络爬虫的框架如图所示:


    网络爬虫的基本工作流程如下:

    1.首先选取一部分精心挑选的种子URL;

    2.将这些URL放入待抓取URL队列;

    3.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。

    4.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环。

二、从爬虫的角度对互联网进行划分

    对应的,可以将互联网的所有页面分为五个部分:



    1.已下载未过期网页

    2.已下载已过期网页:抓取到的网页实际上是互联网内容的一个镜像与备份,互联网是动态变化的,一部分互联网上的内容已经发生了变化,这时,这部分抓取到的网页就已经过期了。

    3.待下载网页:也就是待抓取URL队列中的那些页面

    4.可知网页:还没有抓取下来,也没有在待抓取URL队列中,但是可以通过对已抓取页面或者待抓取URL对应页面进行分析获取到的URL,认为是可知网页。

    5.还有一部分网页,爬虫是无法直接抓取下载的。称为不可知网页。

三、抓取策略

    在爬虫系统中,待抓取URL队列是很重要的一部分。待抓取URL队列中的URL以什么样的顺序排列也是一个很重要的问题,因为这涉及到先抓取那个页面,后抓取哪个页面。而决定这些URL排列顺序的方法,叫做抓取策略。下面重点介绍几种常见的抓取策略:

    1.深度优先遍历策略

深度优先遍历策略是指网络爬虫会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。我们以下面的图为例:



    遍历的路径:A-F-G  E-H-I B C D

    2.宽度优先遍历策略

    宽度优先遍历策略的基本思路是,将新下载网页中发现的链接直接插入待抓取URL队列的末尾。也就是指网络爬虫会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。还是以上面的图为例:

    遍历路径:A-B-C-D-E-F G H I

    3.反向链接数策略

    反向链接数是指一个网页被其他网页链接指向的数量。反向链接数表示的是一个网页的内容受到其他人的推荐的程度。因此,很多时候搜索引擎的抓取系统会使用这个指标来评价网页的重要程度,从而决定不同网页的抓取先后顺序。

    在真实的网络环境中,由于广告链接、作  弊链接的存在,反向链接数不能完全等他我那个也的重要程度。因此,搜索引擎往往考虑一些可靠的反向链接数。

    4.Partial PageRank策略

    Partial PageRank算法借鉴了PageRank算法的思想:对于已经下载的网页,连同待抓取URL队列中的URL,形成网页集合,计算每个页面的 PageRank值,计算完之后,将待抓取URL队列中的URL按照PageRank值的大小排列,并按照该顺序抓取页面。

    如果每次抓取一个页面,就重新计算PageRank值,一种折中方案是:每抓取K个页面后,重新计算一次PageRank值。但是这种情况还会有一个问 题:对于已经下载下来的页面中分析出的链接,也就是我们之前提到的未知网页那一部分,暂时是没有PageRank值的。为了解决这个问题,会给这些页面一 个临时的PageRank值:将这个网页所有入链传递进来的PageRank值进行汇总,这样就形成了该未知页面的PageRank值,从而参与排序。下 面举例说明:

    5.OPIC策略策略

    该算法实际上也是对页面进行一个重要性打分。在算法开始前,给所有页面一个相同的初始现金(cash)。当下载了某个页面P之后,将P的现金分摊给所有从P中分析出的链接,并且将P的现金清空。对于待抓取URL队列中的所有页面按照现金数进行排序。

    6.大站优先策略

    对于待抓取URL队列中的所有网页,根据所属的网站进行分类。对于待下载页面数多的网站,优先下载。这个策略也因此叫做大站优先策略。

 

 

参考书目:

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

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

  • 大小: 103 KB
  • 大小: 64.5 KB
  • 大小: 50.9 KB
分享到:
评论

相关推荐

    爬虫基本原理.

    爬虫基本原理.

    网络爬虫基本原理.pdf

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

    网络爬虫基本原理.doc

    网络爬虫基本原理.doc

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

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

    爬虫基本原理.pptx

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

    网路爬虫基本原理

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

    自己动手写网络爬虫.pdf

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

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

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

    网络爬虫Java实现原理

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

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

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

    C++网络爬虫项目

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

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

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

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

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

    【计算机课程设计】基于Java网络爬虫(蜘蛛)源码.zip

    该爬虫的基本原理是:从指定的起始网址开始,递归地遍历整个网站,抓取网页内容并提取出有用的信息。该爬虫使用了Jsoup库来处理HTML文档,使用了Java的线程池来实现多线程抓取,使用了MySQL数据库来存储抓取到的信息...

    Python构建网页爬虫原理分析

    网络爬虫是当今最常用的系统之一。最流行的例子是 Google 使用爬虫从所有网站收集信息。除了搜索引擎之外,新闻网站还需要爬虫来聚合数据源。看来,只要你想聚合大量的信息,你可以考虑使用爬虫。 建立一个网络爬虫...

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

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

Global site tag (gtag.js) - Google Analytics