迅睿CMS免费开源框架
免费开源CMS
  • 首页
  • 产品动态
    • 官方公告
    • 功能介绍
    • 疑难解答
  • 产品购买
    迅睿建站程序

    迅睿CMS框架是一款PHP8高性能·简单易用的CMS开源开发框架,基于MIT开源许可协议发布,免费且不限制商业使用,是免费开源的产品,以万端互联为设计理念,支持的微信公众号、小程序、APP客户端、移动端网站、PC网站等多终端式管理系统。

    迅睿CMS产品
    迅睿建站系统
    安全加固系统
    国产化数据库
    小程序开发
    版本更新日志
    捐赠迅睿团队
    迅睿服务方案
    迅睿授权套餐
    网站服务套餐
    OEM版权套餐
    迅睿售后服务
    网站安全部署
    网站故障修复
    网站漏洞修补
    木马清理服务
    电商解决方案
    多用户商城方案
    供应链商城方案
    分销商城方案
    SAAS商城方案
    拼团/竞拍商城方案
    跨境电商方案
    品牌内购解决方案
    福利商城解决方案
    企业订货系统解决方案
    个性化定制方案
    企业官网设计
    行业网站设计
    门户网站设计
    多语言外贸网站设计
    APP小程序设计
  • 应用市场
    • 应用插件
    • 模板界面
    • 小程序
  • 源码下载
  • 开发服务
    • 开发服务
    • 提交需求
    • 官方服务
    • 开发报价
  • 技术支持
  • 帮助文档
    • 新手学习合集
    • 视频教程讲解

    • 新手入门指南
    • 后台操作教程
    • 二次开发文档
    • 插件开发文档
    • 模板制作教程
    • API接口开发
    • 插件使用教程
    • 常见问题汇总

    • 模板标签生成器
    • 自定义字段调用
    • API接口测试工具
  • 控制台

爬虫抓取网站页面策略

2021-08-31 08:59:26 CMS

爬虫抓取网站页面策略

在爬虫系统中,要爬取的URL队列是一个非常关键的部分。爬虫要爬取的网页的URL被组织起来,形成一个队列结构。程序员每次从队列头中拉取某个URL发送给网页下载器下载页面内容时,每个新下载的页面中包含的URL都会被添加到URL队列的末尾进行爬取,从而形成一个循环,可以说整个tracker系统都是由这个队列驱动的。

{xunruicms_img_title}

如何确定要抓取的URL队列中页面的URL顺序?如上所述,新下载页面中包含的链接附加到队列的末尾。这当然是确定队列URL 顺序的一种方法,但不是唯一方法。实际上,可以采用许多其他技术来捕获队列,URL 是排序的。不同的爬虫爬取策略使用不同的方法来确定要爬取的URL 队列中URL 的优先级。

爬虫的跟踪策略有很多种,但不管采用哪种方法,基本目标都是一样的:先选择重要的网页进行爬取。在跟踪系统中,可以通过不同的方法来判断网页的假设重要性,但大多数是根据网页的受欢迎程度来定义的。本书“链接分析”一章介绍的PageRank就是评估网页Common Sex Norms的重要性。

跟踪策略的方法有很多。本部分仅选择已被证明有效或具有代表性的解决方案,包括以下4 类:横截面广度优先策略、不完全PageRank 策略、OCIP 策略和大型优先站点策略。

广泛的优先策略(BreathFirst)

广度游览是一种非常简单直观的游览方式,历史悠久。搜索引擎爬虫一出现就采用了它。最近提出的跟踪策略使用这种方法作为比较的基准。但是需要注意的是,这个策略也是一个非常强大的方法,很多较新的方法不一定比广度优先遍历策略好,所以这个方法也是很多跟踪系统采用的第一个捕获策略,实实在在。

那么什么是振幅旅行第一呢?实际上,前面提到的“将新下载的网页中包含的链接直接追加到待抓取的URL队列底部”,这就是广度优先的想法。即这种方法并没有明确提出和使用衡量网页重要性的标准,而是机械地从新下载的网页中提取链接,加入到待抓取的URL队列中,从而进行排序。网址。图2-7是这种策略的示意图:假设队列顶部的网页是网页1,从网页1中提取3个指向网页2、3、4的链接,并按顺序排列根据编号顺序。跟踪url队列,图中网页的编号就是要爬取的url队列中网页的序号,然后爬虫按照这个顺序下载。

部分PageRank 策略(PartialPageRank)

{xunruicms_img_title}

PageRank 是一种流行的链接分析算法,可用于衡量网页的重要性(有关技术细节,请参阅本书的“链接分析”一章)。自然可以想到用PageRank的思想来对URL的优先级进行排序。但是这里有一个问题。 PageRank 是一种全局算法,这意味着当所有网页都被下载时,计算的结果是可靠的。爬虫的目的是下载网页,运行时只能查看部分网页。因此,无法在爬行阶段为网页获得可靠的PageRank 分数。

如果我们继续对这组不完整的网页面子坚持计算PageRank 会怎样?这就是不完全PageRank策略的基本思想:对于下载的网页,将要爬取的URL队列中的URL加入,形成一个网页集合,并对该集合进行PageRank计算。计算完成后,将要爬取的URL队列进行排队。里面的网页按照PageRank分数从高到低排序,形成的顺序就是爬虫接下来必须爬取的URL列表。这就是为什么它被称为“不完整的PageRank”。

如果每次抓取一个新的网页,所有下载的网页都重新计算为一个新的不完整的PageRank值,这显然效率太低,在现实中是不可行的。一种折衷方法是:只要有足够K个新下载的网页,对所有下载的网页重新计算一个新的不完整PageRank。这种计算效率勉强可以接受,但又带来了一个新问题:在开始下一轮PageRank计算之前,提取新下载的网页中包含的链接。很有可能这些链接的重要性很高,应该优先下载,这种情况怎么解决?不完整的PageRank 为这些新挖掘的没有PageRank 值的网页分配一个临时的PageRank 值。本网页链接内所有传输的PageRank 值汇总为临时PageRank 值。如果这个值大于在要爬取的URL队列中的计算值,如果页面出现的PageRank值高,则首先下载这个URL。

OCIP策略(在线页面重要性计算)

OCIP的字面意思是“计算在线页面的重要性”,可以认为是一种改进的PageRank算法。在算法开始之前,每个互联网页面都会收到相同的“现金”。每当页面P 被下载时,P 将在该页面包含的链接页面之间平均分配其拥有的“现金”。 “现金”被清空。爬取URL队列中的网页,按照可用现金的多少进行排序,现金最多的网页先下载。 OCIP 在其强大的框架中与PageRank 基本相同。不同的是:PageRank每次都需要迭代计算,而OCIP策略不需要迭代过程,所以计算速度比PageRank快很多,适合实时计算。同时,在计算PageRank的时候,有一个远程跳转到未链接网页的过程,而OCIP没有这个计算因素。实验结果表明OCIP是一种更好的重要性度量策略,效果略好于广度优先横截面策略。

大网站优先(大网站优先)

大网站优先策略很简单:网站衡量网页的重要性。待抓取的URL 队列中的网页根据各自的网站进行排名。如果哪个网站等待下载的页面最多,那么这些链接将被首先下载。基本思想倾向于优先从大型网站下载,因为大型网站往往包含更多页面。由于大型网站通常都是知名公司的内容,他们的网页一般都是高质量的,所以这个想法很简单,但有一定的依据。实验表明,该算法的效果略好于cross-width-first策略。


上一篇:爬虫质量的评价标准
下一篇:爬虫必须根据爬虫所采用的网页更新策略

Copyright © 四川迅睿云软件开发有限公司

蜀ICP备19023384号
川公网安备 51010602001037号
增值电信业务经营许可证:川B2-20211858