学爬虫前不得不看的理论知识。

什么是网络爬虫?*

网络爬虫的组成
网络爬虫由控制节点,爬虫节点,资源库组成。
网络爬虫中可以有多个控制节点,每个控制节点下有多个爬虫节点。
控制节点之间可以互相通信。
控制节点也可以和其下的爬虫节点互相通信。
属于同一控制节点下的各个爬虫节点也可以互相通信。
控制节点:主要负责根据URL地址分配线程,并调用爬虫节点进行具体的爬行。
爬虫节点:爬虫节点会按照相关的算法,对网页进行具体的爬行,主要包括下载网页以及对网页的文本进行处理,爬行后,会将对应的爬行结果存储到对应的资源库中。
网络爬虫的类型
按照实现的技术和结构可以分为通用爬虫,聚焦爬虫,增量式爬虫,深层爬虫以及用户爬虫等类型。
通用爬虫的概念:搜索引擎的主要组成,作用就是将互联网的上页面整体的爬取下来之后,保存到本地。主要应用于大型搜索引擎中。
通用爬虫的构成:主要由初始URL集合,URL队列,页面爬行模块,页面分析模块,页面数据库,链接过滤模块等构成。
通用爬虫采取的爬行策略,主要有深度优先爬行策略和广度优先爬行策略。

聚焦爬虫的概念:聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。主要应用在对特定信息的爬取。
聚焦爬虫的构成:主要由初始URL集合,URL队列,页面爬行模块,页面分析模块,页面数据库,链接过滤模块,内容评价模块,链接评价模块等构成。内容评价模块可以评价内容的重要性,链接评价模块也可以评价出链接的重要性,然后根据内容和链接的重要性,可以确定哪些页面优先访问。
聚焦爬虫的爬行策略:主要分为4种。基于内容评价的爬行策略,基于链接评价的爬行策略,基于增强学习的爬行策略和基于语境图的爬行策略。

增量式爬虫的概念:只爬取内容发生变化的网页或者新产生的网页,对于未发生内容变化的网页,则不会爬取。

深层爬虫的概念:可以爬取互联网中的深层页面。
何为深层页面:在互联网中,网页按存在方式分类,可以分为表层页面和深层页面。所谓表层页面就是不需要提交表单,使用静态的链接就能够到达的静态页面;而深层页面则隐藏在表单后面,不能通过静态链接直接获取,是需要提交一定的关键词之后才能够获取到的页面。
爬取深层页面,需要想办法自动填写好对应表单,所以,深层网络爬虫最重要的部分即为表单填写部分。
深层爬虫的构成:主要由URL列表,LVS列表(LVS列表指的是标签/数值集合,即填充表单的数据源),爬行控制器,解析器,LVS控制器,表单分析器,表单处理器,响应分析器等部分构成。
深层爬虫表单的填写由两种类型:基于领域知识的表单填写;就是建立一个填写表单的关键词库,在需要填写的时候,根据语义分析选择对应的关键词进行填写;第二种是基于网页结构分析的表单填写,根据网页结构进行分析,并自动进行表单填写。

用户爬虫的概念:主要用于爬取互联网用户的数据信息。

搜索引擎

搜索引擎的核心工作流程:

  1. 搜索引擎利用爬虫模块去爬取互联网中的网页,并将爬取到的网页存储在原始数据库中。(爬虫模块主要包括控制器和爬行器,控制器主要进行爬行的控制,爬行器则负责具体的爬行任务。)
  2. 然后对原始数据库中的数据进行索引,并存储到索引数据库中。
  3. 当用户检索信息时,会通过用户交互接口输入对应的信息,用户交互接口相当于搜索引擎的输入框。输入完成后,由检索器进行分词等操作,检索器会从索引数据库中获取数据并进行相应的检索处理。
  4. 用户输入对应信息的同时,会将用户的行为存储到用户日志数据库中,比如用户的IP地址,用户所输入的关键词等,随后,用户日志数据库中的数据会交由日志分析器进行处理,日志分析器会根据大量的用户数据去调整原始数据库和索引数据库,改变排名或进行其他操作。

网络爬虫实现原理与实现技术

通用爬虫的实现过程和基本原理:

  1. 获得初始的URL。
  2. 根据初始的URL爬取页面并获得新的URL。获得初始的URL地址之后,首先需要爬取对应URL地址中的网页,爬取了对应的URL地址中的网页后,将网页存储到原始数据库中,并且在爬取网页的同时,发现新的URL地址,同时将已爬取的URL地址存放到一个URL列表中,用于去重及判断爬取的进程。
  3. 将新的URL放到URL队列中,在第二步中,获取了下一个新的URL地址之后,会将新的URL地址放到URL队列中。
  4. 从URL队列中读取新的URL,并依据新的URL爬取网页,同时从新网页中获取新的URL,并重复上述的爬取过程,直到无法获取新的URL地址为止。若设置了停止条件,爬虫则会在停止条件满足时停止爬取。
    聚焦爬虫的实现过程和基本原理:
  5. 对爬取目标的定义和描述。在聚焦爬虫中,需要依据爬取需求定义好该聚焦爬虫爬取的目标,以进行相关的描述。
  6. 获取初始的URL。
  7. 根据初始的URL爬取页面,并获得·新的URL。
  8. 从新的URL中过滤掉与爬取目标无关的链接,因为聚焦爬虫对网页的爬取是有目的性的,所以与目标无关的网页将会被过滤掉,同时也需要将已爬取的URL地址存放到一个URL列表中,用于去重和判断爬取的进程。
  9. 将过滤后的链接放到URL队列中。
  10. 从URL队列中,根据搜索算法,确定URL优先级,并确定下一步要爬取的URL地址。在通用爬虫中,下一步爬取哪些URL地址,是不太重要的,但是在聚焦爬虫中,由于其具有目的性,故而下一步爬取哪些URL地址相对来说是比较重要的。对于聚焦爬虫来说,不同的爬取顺序,可能导致爬虫的执行效率不同,所以,我们需要依据搜索策略来确定下一步需要爬取哪些URL地址。
  11. 从下一步要爬取的URL地址中,读取新的URL,然后依据新的URL地址爬取网页,并重复上述爬取过程。
  12. 满足系统中设置的停止条件时,或无法获取新的URL地址时,停止爬行。

爬行策略
在待爬取的URL列表中,可能有很多URL地址,那么这些URL地址,爬虫应该先爬哪个?后爬哪个?这一般要看你采取的爬行策略,因为爬行策略决定了爬取的顺序。
1爬行策略主要有:深度优化爬行策略广度优化爬行策略大站优先策略反链策略其他爬行策略等
假设有一个网站,现在用不同的爬行策略对其进行爬取
深度优化爬行策略:首先爬取一个网页,然后将这个网页的下层链接依次深入爬取完再返回上一层进行爬取。
广度优化爬行策略:首先会爬取同一层次的网页,将同一层次的网页全部爬取完,再选择下一层次的网页取爬行。
大站爬行策略:如果某个网站的网页数量多,那我们则将其称为大站,按照这种策略,网页数量越多的网站越大,然后,优先爬取大站中的网页URL地址。
反链策略:一个网页的反向链次数,指的是该网页被其他网页指向的次数,这个次数在一定程度上代表着该网页被其他网页的推荐次数。所以,如果按照反链策略去爬行的话,那么哪个网页的反链数量越多,则哪个网页将被优先爬取。但是,在实际情况中,如果单纯按反链策略去决定一个网页的优先程度的话,那么可能会出现大量的作弊情况。比如,做一些垃圾站群,并将这些网站互相链接,如果这样的话,每个站点将获得较高的反链,从而达到作弊的目的。作为爬虫项目方,不喜欢收到这种作弊行为的干扰,所以,如果采用反向链接策略去爬取的话,一般会考虑可靠的反链数。

网页更新策略
学了这个,你所编写的爬虫执行效率会更高,并且执行逻辑会更合理。
概念:一个网站的网页会经常更新,作为爬虫方,在网页更新后,我们需要对这些网页进行重新爬取,那么什么时候去爬取合适?如果网站更新过慢,而爬虫爬的过于频繁,则必然会增加爬虫及网站服务器的压力,若网站更新过快,而爬虫爬取的时间间隔较长,则我们爬取的内容版本会过于老,不利于新内容的爬取。显然,网站的更新频率与爬虫访问网站的频率越接近,则效果越好。当然,爬虫服务器资源有限的时候,此时爬虫也需要根据对应策略,让不同的网页具有不同的更新优先级,优先级高的网页更新,将获得较快的爬取响应。
常见的网页更新策略主要有3种:用户体验策略,历史数据策略,聚类分析策略等。
用户体验策略:在搜索引擎查询某个关键词的时候,会出现一个排名结果,在排名结果中,通常会有大量的网页,但是,大部分用户只会关注排名靠前的网页,所以,在爬虫服务器资源有限的情况下,爬虫会优先更新排名结果靠前的网页,这种更新策略叫用户体验策略。爬虫如何爬取这些排名靠前的网页呢?此时,爬取中会保留对应网页的多个历史版本,并进行对应分析,依据这多个历史版本的内容更新,搜索质量影响,用户体验等信息,来确定对这些网页的爬取周期。
历史数据策略:依据某一个网页的历史更新数据,通过泊松过程进行建模等手段,预测该网页下一次更新的时间,从而确定下一次对该网页爬取的时间,即确定更新周期。
以上两种策略,都需要历史数据作为依据。如果要爬取一个新网页,它没有对应的历史数据,则需要采取新的更新策略,比如聚类分析策略。
聚类分析策略:首先,经过大量的研究发现,网页可能具有不同的内容,但是一般来说,具有类似属性的网页,其更新频率也是类似的。所以我们可以先对海量的网页进行聚类分析,在聚类后会形成多个类,每个类中的网页具有类似的属性,即一般具有类似的更新频率,然后对每个类都进行网页抽样,然后求出抽样结果的平均更新值,从而确定对每个聚类的爬行频率。
网页分析算法:
在搜索引擎中,爬虫爬取了对应的网页之后,会将网页存储到服务器的原始数据库,之后,搜索引擎会对这些网页进行分析并确定各网页的重要性,即会影响用户检索的排名结果。所以,我们需要对搜索引擎的网页分析算法进行简单了解。
搜索引擎的网页分析算法主要分三类:基于用户行为的网页分析算法,基于网络拓扑的网页分析算法,基于网页内容的网页分析算法。

  1. 基于用户行为的网页分析算法:依据用户对这些网页的访问行为,对网页进行评估,比如:依据用户对该网页的访问频率,用户对网页的访问时长,用户的单击率等信息对网页进行综合评估。
  2. 基于网络拓扑的网页分析算法
  3. 基于网页内容的网页分析算法:依据网页的数据,文本等网页内容特征,对网页进行相应的评价。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值