官方服务微信:dat818 购买与出租对接

网络爬虫技术解析:通用与聚焦爬虫的区别及应用场景

3万

主题

2

回帖

10万

积分

管理员

积分
101998
发表于 2025-2-26 02:23:55 | 显示全部楼层 |阅读模式
    01 什么是网络爬虫

    大数据时代来临了。网络爬虫在互联网中的地位会越来越重要。互联网中的数据极为海量。怎样自动且高效地获取互联网中我们感兴趣的信息并让其为我们所用,这是一个重要的问题。爬虫技术就是为了解决这些问题而诞生的。

    我们感兴趣的信息有不同类型:做搜索引擎时,感兴趣的信息是互联网中尽可能多的高质量网页;获取某一垂直领域数据或有明确检索需求时,感兴趣的信息是根据检索和需求所定位的这些信息,且此时需过滤掉一些无用信息。前者被称为通用网络爬虫,后者被称为聚焦网络爬虫。

    1. 初识网络爬虫

    网络爬虫有多种别称,如网络蜘蛛、网络蚂蚁、网络机器人等。它能够自动化地浏览网络中的信息,不过在浏览信息时需按照我们制定的规则进行,而这些规则被我们称作网络爬虫算法。我们可以很方便地编写爬虫程序,从而进行互联网信息的自动化检索。

    搜索引擎需要爬虫。例如,百度搜索引擎的爬虫被称作百度蜘蛛。百度蜘蛛每天会在大量的互联网信息里进行爬取工作,它会爬取优质信息并将其收录。当用户在百度搜索引擎上搜索相应关键词时,百度会对该关键词进行分析处理,然后从收录的网页中找出相关网页,接着按照一定的排名规则对这些网页进行排序,最后将排序结果展示给用户。

    在这个过程里,百度蜘蛛有着极为重要的作用。那么,怎样去覆盖互联网中更多的优质网页呢?又怎样去筛选这些重复的页面呢?这些都由百度蜘蛛爬虫的算法所决定。运用不同的算法,爬虫的运行效率会不一样,爬取的结果也会存在差异。

    我们在研究爬虫时,一方面要了解爬虫的实现方式,另一方面要知道一些常见爬虫的算法。若有必要,我们还需自己制定相应算法。在此,我们只需对爬虫的概念有个基本的了解即可。

    除了百度搜索引擎需要爬虫之外,其他搜索引擎也都需要爬虫,并且它们都拥有各自的爬虫。例如 360 有其对应的爬虫,搜狗有其对应的爬虫,必应有其对应的爬虫。

    如果想要自己实现一款小型的搜索引擎,我们能够编写出自己的爬虫来达成。当然,可能在性能或者算法方面比不上主流的搜索引擎,不过个性化的程度会相当高,并且还有利于我们更深入地理解搜索引擎内部的工作原理。

    大数据时代离不开爬虫。在进行大数据分析或数据挖掘时,我们能够去一些大型的官方站点下载数据源。然而,这些数据源较为有限。那么怎样才能获取更多且更高质量的数据源呢?此时,我们可以编写自己的爬虫程序,从互联网中获取数据信息。因此,在未来,爬虫的地位会愈发重要。

    2. 为什么要学网络爬虫

    我们对网络爬虫有了初步的认识。然而,为何要学习网络爬虫呢?要明白,只有清楚地知晓我们的学习目的,才能够更有效地学习这一知识。接下来,我们将为大家分析学习网络爬虫的原因。

    不同的人学习爬虫,其目的或许会有所差异。在此,我们将 4 种常见的学习爬虫的原因进行了总结。

    学习爬虫,能够私人订制一个搜索引擎。同时,还可以对搜索引擎的数据采集工作原理有更深入的理解。

    有的朋友希望深入了解搜索引擎的爬虫工作原理,有的朋友希望能开发出一款私人搜索引擎,在这种情况下,学习爬虫是很有必要的。

    简单来说,学会爬虫编写后,能够利用爬虫自动采集互联网信息。采集回来的信息可以进行相应存储或处理。当需要检索某些信息时,只需在采集回来的信息中进行检索,这样就实现了私人的搜索引擎。

    信息的爬取方式需要我们设计,信息的存储方式需要我们设计,信息的分词方式需要我们设计,信息的相关性计算方式也需要我们设计,而爬虫技术主要是解决信息爬取这一问题。

    大数据时代进行数据分析需有数据源。学习爬虫能让我们获取更多数据源,这些数据源可按我们的目的进行采集,从而去掉很多无关数据。

    在进行大数据分析或数据挖掘时,数据源可以从一些提供数据统计的网站获取,也能从某些文献或内部资料中获取。然而,这些获取数据的方式,有时难以满足我们对数据的需求,并且手动从互联网中寻找这些数据,会耗费过多的精力。

    此时可借助爬虫技术,从互联网中自动获取我们感兴趣的数据内容,把这些数据内容爬取回来当作我们的数据源,以此进行更深层次的数据分析,进而获得更多有价值的信息。

    很多 SEO 从业者学习爬虫,能够更深层次地去理解搜索引擎爬虫的工作原理,进而能够更好地开展搜索引擎优化工作。

    因为是搜索引擎优化,所以必须清楚搜索引擎的工作原理,也要掌握搜索引擎爬虫的工作原理,这样在做搜索引擎优化时,才能做到知己知彼,百战不殆。

    从就业方面来看,爬虫工程师目前属于紧缺人才。其薪资待遇普遍比较高。因此,深入地掌握这门技术,对于就业而言是很有好处的。

    有些朋友学习爬虫或许是为了就业或者跳槽。从某一角度看,爬虫工程师这个方向是不错的选择之一。目前,爬虫工程师的需求在不断增大,而能胜任这方面岗位的人员相对较少,所以它属于比较紧缺的职业方向。随着大数据时代的到来,爬虫技术的应用会越来越广泛,在未来会有很好的发展空间。

    除了以上为大家所总结的 4 种常见的学习爬虫的缘由之外,或许你还存在一些其他学习爬虫的缘由。总之,不论是什么缘由,只要能理清自己学习的目的,就能够更好地去对一门知识技术进行研究,并且能够坚持下去。

    3. 网络爬虫的组成

    接下来,我们要介绍网络爬虫的构成部分。网络爬虫包含控制节点,同时还有爬虫节点,并且有资源库。

    图1-1所示是网络爬虫的控制节点和爬虫节点的结构关系。

    图1-1 网络爬虫的控制节点和爬虫节点的结构关系

    可以看到,网络爬虫中存在多个控制节点。每个控制节点之下都有多个爬虫节点。控制节点之间能够互相通信。同时,控制节点与它之下的各个爬虫节点也能够互相通信。属于同一个控制节点下的各个爬虫节点之间,同样可以互相通信。

    控制节点,也被称作爬虫的中央控制器。它主要承担着这样的职责:依据 URL 地址来分配线程,并且调用爬虫节点去进行具体的爬行工作。

    爬虫节点会依据相关算法对网页展开具体的爬行行为。其中主要包含下载网页这一动作,同时也会对网页的文本进行处理。在完成爬行后,会把相应的爬行结果存储到对应的资源库里面。

    4. 网络爬虫的类型

    我们现在已经大致了解了网络爬虫的构成。那么,网络爬虫具体都有哪些种类呢?

    网络爬虫依据实现的技术和结构能够被分为通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫等不同类型。在实际的网络爬虫应用里,一般是这几种爬虫组合而成的。

    4.1 通用网络爬虫

    我们首先为大家介绍通用网络爬虫(Web)。通用网络爬虫也被称作全网爬虫。从其名称就可以知道,通用网络爬虫所爬取的目标资源是在整个互联网当中的。

   


    通用网络爬虫爬取的目标数据量巨大,爬行范围也很大。因为它爬取的数据是海量的,所以这类爬虫的性能要求极高。这种网络爬虫主要在大型搜索引擎中应用,具有很高的应用价值。

    通用网络爬虫主要包含初始 URL 集合、URL 队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块等部分。通用网络爬虫在进行爬行操作时,会运用特定的爬行策略,其中主要有深度优先这种爬行策略以及广度优先这种爬行策略。

    4.2 聚焦网络爬虫

    聚焦网络爬虫,也叫主题网络爬虫。顾名思义,它是按照预先定义好的主题,有选择地进行网页爬取的一种爬虫。聚焦网络爬虫不像通用网络爬虫那样,将目标资源定位在全互联网中,而是将爬取的目标网页定位在与主题相关的页面中。这样,就可以大大节省爬虫爬取时所需的带宽资源和服务器资源。

    聚焦网络爬虫的主要应用在于对特定信息进行爬取,它主要是为某一类特定人群提供服务。

    聚焦网络爬虫主要由以下部分构成:初始 URL 集合、URL 队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块、内容评价模块、链接评价模块。内容评价模块能够评价内容的重要性,而链接评价模块也可以对链接的重要性进行评价。接着,依据链接和内容的重要性,便可以确定哪些页面需要优先访问。

    聚焦网络爬虫的爬行策略主要包含 4 种。一种是基于内容评价的爬行策略,另一种是基于链接评价的爬行策略,还有一种是基于增强学习的爬行策略,最后一种是基于语境图的爬行策略。对于聚焦网络爬虫具体的爬行策略,我们将在下文展开详细分析。

    4.3 增量式网络爬虫

    增量式网络爬虫指的是 Web 方面的。所谓增量式,其对应的是增量式更新。

    增量式更新意味着在进行更新操作时,仅仅更新发生改变的部分,而那些未改变的部分则不进行更新。因此,增量式网络爬虫在爬取网页的过程中,只会爬取内容有所变化的网页或者是新生成的网页,对于那些内容没有发生变化的网页,它是不会进行爬取的。

    增量式网络爬虫在一定程度上能够保证所爬取的页面,有较大可能是新页面。

    4.4 深层网络爬虫

    深层网络爬虫能够爬取互联网中的深层页面。在这方面,我们首先需要对深层页面的概念有所了解。

    深层页面隐藏在表单之后,不能通过静态链接直接获取,而是需要提交一定的关键词之后才可以获取到的页面。

    在互联网领域,深层页面的数量通常比表层页面的数量多出许多。因此,我们得想一些办法来进行深层页面的爬取。

    爬取深层页面时,需要找到办法去自动填写相应的表单。因此,深层网络爬虫最为重要的部分就是表单填写部分。

    - 响应分析器。

    深层网络爬虫表单的填写有两种类型:

    第一种是依据领域知识来进行表单填写。简单来讲,就是构建一个用于填写表单的关键词库。在需要填写表单的时候,通过语义分析,然后挑选出与之对应的关键词来进行填写。

    第二种是关于表单填写的方式,它基于网页结构分析。简单来讲,在领域知识有限时会使用这种填写方式。它会依据网页结构进行分析,然后自动地完成表单填写。

    以上为大家介绍了网络爬虫中的一些常见类型,希望读者能对网络爬虫的分类有基本的认识。

    5. 爬虫扩展——聚焦爬虫

    聚焦爬虫能够按对应的主题有目的地进行爬取,还能节省大量的服务器资源和带宽资源,实用性很强。因此,我们在此要对聚焦爬虫进行详细讲解。图 1-2 展示了聚焦爬虫运行的流程,当我们熟悉该流程后,就能更清晰地了解聚焦爬虫的工作原理和过程。

    图1-2 聚焦爬虫运行的流程

    首先,聚焦爬虫有一个控制中心。这个控制中心的作用是对整个爬虫系统进行管理和监控。它主要负责控制用户交互,会初始化爬行器,还能确定主题,能够协调各模块之间的工作,并且可以控制爬行过程。

    接着,把最初的 URL 集合给到 URL 队列。页面爬行模块会从 URL 队列里读取第一批的 URL 列表,接着依据这些 URL 地址在互联网中展开相应的页面抓取。

    爬取完毕后,把爬取到的内容传至页面数据库进行存储。在爬行期间,会获取一些新的 URL。这时,需依据我们规定的主题,通过链接过滤模块过滤掉不相关的链接。接着,把剩余的 URL 链接按照主题,使用链接评价模块或内容评价模块进行优先级排序。完成这些操作后,将新的 URL 地址传递到 URL 队列中,以供页面爬行模块使用。

    一方面,把页面进行爬取并放置到页面数据库里。接着,要依据主题,利用页面分析模块对爬取到的页面展开页面分析处理。然后,根据处理的结果创建索引数据库。当用户检索相应信息时,能够从索引数据库中进行对应的检索,进而获得对应的结果。

    这是聚焦爬虫的主要工作流程。了解它有助于我们编写聚焦爬虫,能让编写的思路更加清晰。

    02 网络爬虫技能总览

    上文里我们已初步了解了网络爬虫。那么,网络爬虫具体能做哪些事呢?用网络爬虫又能做哪些有趣的事呢?这些我们将在本章中为大家具体讲解。

    1. 网络爬虫技能总览图

    如图2-1所示,我们总结了网络爬虫的常用功能。

    图2-1 网络爬虫技能示意图

    在图 2 - 1 中能看到,网络爬虫具备代替手工做诸多事情的能力。它可以用于构建搜索引擎,还能爬取网站上的图片,像有些朋友会把某些网站的图片全部爬取下来,然后集中起来进行浏览。同时,网络爬虫在金融投资领域也有应用,比如可以自动爬取一些金融信息,并且进行投资分析等。

    有时,我们会有几个比较喜欢的新闻网站。每次都得分别打开这些新闻网站去浏览,这比较麻烦。在这种情况下,可以借助网络爬虫,把这多个新闻网站里的新闻信息抓取下来,然后集中起来进行阅读。

    我们浏览网页信息时,有时会发现有很多广告。在这种情况下,我们可以利用爬虫把对应网页的信息爬取过来,这样就能自动过滤掉这些广告,便于对信息进行阅读和使用。

    有时我们需要进行营销。找到目标客户以及他们的联系方式是个关键问题。我们可以在互联网中手动寻找,但效率很低。此时,利用爬虫,设置相应规则,就能自动从互联网中采集目标用户的联系方式等数据,以供营销使用。

    有时,我们想要对某个网站的用户信息展开分析。例如分析该网站的用户活跃度、发言数以及热门文章等信息。倘若我们并非网站管理员,那么手工进行统计将会是一项极为庞大的工程。在这种情况下,我们能够借助爬虫轻松地将这些数据采集到手,以便能够进行更进一步的分析。并且,所有的爬取操作都是自动进行的,我们只需编写好相应的爬虫,并设计好对应的规则就可以了。

    除此之外,爬虫能够实现诸多强大的功能。总的来说,爬虫的出现,能够在一定程度上替代手工访问网页。这样一来,原先我们需要人工去访问互联网信息的操作,如今都可以通过爬虫实现自动化。如此一来,便可以更高效地利用互联网中的有效信息。

    2. 搜索引擎核心

   


    爬虫和搜索引擎的关系十分紧密。只要提到网络爬虫,就必然会提到搜索引擎。在此,我们要对搜索引擎的核心技术进行简单讲解。

    图 2 - 2 展示了搜索引擎的核心工作流程。搜索引擎首先会运用爬虫模块去抓取互联网里的网页,接着把抓取到的网页存放在原始数据库中。爬虫模块主要由控制器和爬行器构成,其中控制器主要承担爬行的控制工作,而爬行器负责具体的爬行任务。

    接着,会对原始数据库里的数据进行索引操作,接着将其存储到索引数据库当中。

    用户检索信息时,会通过用户交互接口输入相关信息。用户交互接口就如同搜索引擎的输入框。输入完毕后,由检索器进行分词等操作。检索器会从索引数据库中获取数据,以进行相应的检索处理。

    用户输入对应信息时,会把用户的行为存储到用户日志数据库里,像用户的 IP 地址、输入的关键词等。接着,用户日志数据库中的数据会被交给日志分析器去处理。日志分析器会依据大量的用户数据来调整原始数据库和索引数据库,对排名结果进行改变或进行其他操作。

    图2-2 搜索引擎的核心工作流程

    以上是搜索引擎核心工作流程的简要概述。大家或许对索引和检索的概念不太能区分。在此,我为大家详细讲解一下。

    简单来说,检索是一种行为。而索引是一种属性。例如有一家超市,里面有众多商品。为了能快速找到这些商品,我们会把商品进行分组,像有日常用品类商品、饮料类商品、服装类商品等组别。这时,这些商品的组名就被称作索引,并且索引是由索引器来控制的。

    如果有一个用户想找到某一个商品,就需要在超市的众多商品里去寻找,这个寻找的过程我们叫做检索。若有一个好的索引,就能提升检索的效率;要是没有索引,检索的效率就会很低。

    比如,一个超市里的商品若未进行分类,那么用户要在众多的商品里寻找某一种商品,就会比较费劲。

    3. 用户爬虫的那些事儿

    用户爬虫属于网络爬虫的一种类型。用户爬虫是专门用于爬取互联网中用户数据的爬虫。互联网中的用户数据信息较为敏感,因此用户爬虫的利用价值相对较高。

    用户爬虫可以用来做很多事情。接下来,让我们一起看看利用用户爬虫所做的一些有趣之事吧。

    2015 年,有知乎网友对知乎的用户数据进行了爬取。接着进行了对应的数据分析。通过这些操作,得到了知乎上大量的潜在数据,例如:

    知乎上注册用户的男女比例:男生占例多于60%。

    知乎上注册用户的地区:北京的人口占据比重最大,多于30%。

    知乎上注册用户从事的行业情况如下:从事互联网行业的用户所占比重最大,并且比 30%还要多。

    除此之外,我们如果细心去发掘,能够挖掘出更多的潜在数据。而要对这些数据进行分析,就必须获取到这些用户数据。在这种情况下,我们可以借助网络爬虫技术,轻松地爬取到这些有用的用户信息。

    在 2015 年,有网友将 3000 万 空间的用户信息进行了爬取。并且从这些信息中获得了大量潜在数据,例如:

    空间用户发说说的时间存在一定规律。在晚上 22 点左右这个时间段,平均发说说的数量达到了一天当中的最高峰。

    空间用户的出生月份分布情况如下:1 月份出生的用户较多,10 月份出生的用户也较多。

    空间用户的年龄阶段分布情况如下:出生在 1990 年到 1995 年这个时间段的用户数量相对较多。

    空间用户的性别分布情况如下:男生在其中所占的比例超过 50%;女生所占的比例超过 30%;而未填写性别的用户约占 10%。

    除了上述两个例子之外,用户爬虫还能够做诸多事情。例如,它可以爬取淘宝的用户信息,能够对淘宝用户所喜欢的商品进行分析,这样就更有助于我们对商品进行定位等。

    由此可见,通过用户爬虫能够获取许多有趣的潜在信息。那么,这些爬虫难度如何呢?其实并不难,相信你有能力写出这样的爬虫。

    03 小结

    网络爬虫又称网络蜘蛛、网络蚂蚁、网络机器人等。它能够自动浏览网络中的信息,不过在浏览信息时需按照我们制定的规则进行,而这些规则被我们称为网络爬虫算法。利用它可以很便捷地编写出爬虫程序,从而实现互联网信息的自动化检索。

    学习爬虫能够:①定制一个属于自己的搜索引擎,并且能够深入理解搜索引擎的数据采集工作原理;②为大数据分析提供更多品质高的数据源;③更有利于研究搜索引擎优化;④有助于解决就业或跳槽方面的问题。

    网络爬虫由控制节点、爬虫节点、资源库构成。

    网络爬虫按照实现的技术和结构可以分为通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫等类型。在实际的网络爬虫中,通常是这几类爬虫的组合体。

    聚焦网络爬虫包含初始 URL 集合,还有 URL 队列,包含页面爬行模块,包含页面分析模块,包含页面数据库,包含链接过滤模块,包含内容评价模块,包含链接评价模块等。

    爬虫的出现,能够在一定程度上替代手工访问网页。原先我们需要人工去访问互联网信息,而现在这些操作都可以通过爬虫自动化来实现。这样就能更高效率地利用好互联网中的有效信息。

    检索是一种行为。索引是一种属性。如果有好的索引,就能够提高检索的效率。如果没有索引,检索的效率就会很低。

    用户爬虫属于网络爬虫的一种类型。用户爬虫是专门用于爬取互联网中用户数据的爬虫。互联网中的用户数据信息较为敏感,因此用户爬虫的利用价值相对较高。

    本文摘编自《精通网络爬虫:核心技术、框架与项目实战》

更多帖子推荐

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|小黑屋|关于我们

Copyright © 2001-2025, Tencent Cloud.    Powered by Discuz! X3.5    京ICP备20013102号-30

违法和不良信息举报电话:86-13718795856 举报邮箱:hwtx2020@163.com

GMT+8, 2025-5-9 23:24 , Processed in 0.101953 second(s), 17 queries .