作为搜索引擎技术核心元素之一,自1993年初 Matthew Gray’s Wandered 在麻省理工学院开发出有史记载的第一个网络爬虫以来,爬虫技术历经20多年的发展,技术已日趋多样。为满足不同用户多种多样的需求,创建开发了类型众多的爬虫系统。按照实现技术和其系统构成,爬虫系统主要可以分为以下几种:

1.通用网络爬虫

通用网络爬虫(General Purpose Web Crawler)也可称之为全站爬虫(Scalable Web Crawler),它通过一系列预设的初始链接开始,获取页面上所有链接,根据预设规则,提取链接,进入待爬取队列,进而不断访问网页下载网页或取链接。然后通过HTML解析技术,获取页面数据,提取所需信息并保存,与此同时将新获取的链接放入待爬取队列,直到达到系统预设指定条件为止。通用网络爬虫有两种常用的爬取策略:

(1)深度优先策略(Depth first strategy):

这个是在爬虫发展早期使用比较多的方法。这种策略最终要达到的效果是一直搜索到由站点分布抽象出来的树的叶子节点(即网页站点的最底层不包含任何其他不重复的网页链接的网页) 。在一个网页文件中,当爬虫获得当前网页中的第一个链接后,就对该链接所指向的网页文件执行深度优先搜索策略,也就是说在搜索当前页面的其他的链结结果之前,必须先搜索出一条路径使其形成一条独立的完整的链。形象点说深度优先搜索策略就是沿着该网页解析出的HTML文件的一个链接转接到另一个链接从而由链接组成的链接网络一直走到不能更加深入为止,然后返回到之前所在的某一个网页文件中,再继续选择该网页文件中的下一个不重复的链接,重复上述动作。当初始网页中不再存在其他链接可供选择时,说明此次搜索已经结束。但如果所需爬取网页节点结构比较深时的时候,该策略会引起较大的资源浪费,爬取效率也不太高。

(2)广度优先策略(Breadth first strategy):

简称BFS,又称之为宽度优先搜索策略,或横向优先搜索策略,作为一种图形搜索算法提出来,其思想亦可用于网络爬虫的设计。简单的说,广度优先搜索策略是从树根节点开始,沿着树的宽度遍历树在同一层的节点。如果该树的所有节点均被访问,则算法结束。广度优先搜索策略的实现一般采用open-closed表。广度优先搜索策略先将所需爬取网页的站点按照页面结构划分成不同的层次,然后沿着划分好的层次一层一层的由上到下进行爬取。先爬取浅层次的链接,将处于同一层次的所有网页处理完成之后再向下一个层次继续爬取。广度优先策略可以以并发的方式进行爬取,由于程序并发会提高程序的工作效率,所以这种特性在一定程度上可以提高爬虫的爬取效率,而且同时也可以任意控制爬虫爬取网站站点的深度,从而避免了使用深度优先策略是爬虫陷入无穷深度从而导致爬虫不能正常结束的状态。
利用通用爬虫策略实现爬虫算法的Google crawl爬取目前存在于互联网上所有网站网页,谷歌公司通过建立分布式系统网络加上异步输入输出的技术来用以提高整个爬虫系统的并发度,期间还使用了包括PageRank算法在内的众多提升系统运行效率的算法来优化Google crawl爬虫的爬取性能。

###2.增量网络爬虫

增量网络爬虫(Incremental Web Crawler)是一种根据不同同一网站上不同页面更新的频率的不同来对应不同的策略的爬取策略,是一种对已经爬取过的页面在数据存储中采取增量式的更新的策略,也就是说这种爬虫策略只会爬取当前新出现页面的数据和页面产生更新的数据。增量更新的策略相对于优先策略来说其不会出现大量重复爬取页面的情况,避免不能充分利用硬件或网络等资源,最终导致整个系统使用效率低下的情况的发生。

python爬虫国内外研究现状相关推荐

  1. 基于python的国内外研究现状怎么写_毕业论文指之国内外研究现状的写法与范文...

    毕业论文指之 "国内外研究现状"的撰写 一. 写国内外研究现状的意义 通过写国内外研究现状,考察学生对自己课题目前研究范围和深度的理 解与把握,间接考察学生是否阅读了一定的参考文献 ...

  2. 基于python的国内外研究现状怎么写_毕业论文中的国内外研究现状怎么写啊

    毕业论文中的国内外研究现状怎么写啊以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 毕业论文指之 "国内外研究现 ...

  3. 基于python的国内外研究现状怎么写_国内外研究现状的写法

    国内外研究现状的写法 ( 胡汉辉老师 ): 与网络型公用事业的改革实践相辅相成的是相关的产业组织和行业管理理论研究, 特别是规制理论研究的繁荣.传统上,网络型公用事业作为自然垄断的典型代表一直备 受关 ...

  4. 基于python的国内外研究现状怎么写_如何写国内外研究现状

    1 / 8 如何写国内外研究现状 毕业论文指导: 如何写国内外研究现状 一.为什么要写国内外研究现状 通过 写国内外研究现状,可以考察学生是不是阅读了大量的相关文献. 为什么要求学生阅读大量的参考文献 ...

  5. python在国内外研究现状_国内外研究现状,水平和发展趋势-开题报告

    指导教师: 年 月 日 毕 业 论 文 开 题 报 告 1. 本课题的研究意义, 国内外研究现状 . 水平和发展趋势 计算机的出现给人类社会带来了第三次工业革命,计算机和计算机网络已 经深入到了各行各 ...

  6. 基于python的国内外研究现状怎么写_如何写国内外研究现状-国内外研究

    毕业论文指导 : 如何写"国内外研究现状"? 一.为什么要写国内外研究现状 通过写国内外研究现状 , 可以考察学生就是不就是阅读了大量的相关文献. 为什么要求学生阅读大量的参考文献 ...

  7. 基于python的国内外研究现状_国内外研究现状评述

    国内外研究现状评述 基于国外博物馆免费开放的现状, 国内博物馆在几年近也开始陆续免费开放. 但是, 由于管理机 制的缺失, 博物馆免费开放的制度并没有达到十分完善, 并且免费开放的标准没有达到整齐划一 ...

  8. 基于python的国内外研究现状怎么写_如何撰写国内外研究现状评述

    如何撰写国内外研究现状评述 文献综述 它是对某一方面的专题搜集大量情报资料后经综合分析而写成的一种 学术论文, 它是科学文献的一种. 是反映当前某一领域中某分支学科或重要 专题的最新进展. 学术见解和 ...

  9. 基于python的国内外研究现状怎么写_(√)毕业论文指之国内外研究现状的写法与范文...

    第 1 页 共 9 页 三一文库( www.31doc.com ) / 实用范文 / 素材及写作指导 [毕业论文指之国内外研究现状的写法 与范文] 毕业论文指之"国内外研究现状"的 ...

  10. python在国内外研究现状_机器人教育_国内外Python课程现状?

    与教学开展类似,国内 Python 语言相关教材和参考书建设也十分有限.从教学开展和教学资源建设方面看,国内高校对开展 Python 语言教学的重要价值和意义认识不足,且缺少师资和参考教学体系.授课方 ...

最新文章

  1. 2021年大数据常用语言Scala(三十二):scala高级用法 样例类
  2. linux下实现dns服务器,实现Linux操作系统下DNS服务器的搭建
  3. jetson nano 实现车牌识别
  4. 又到了年终总结的时候了,数据分析的年度工作计划,你知道该怎么写吗?
  5. 面向对象分析与设计小结
  6. 经验分享:聊聊多人游戏同步那点事
  7. 华为鸿蒙宣传悟空视频_华为自研鸿蒙系统定档9月?《悟空》微电影透露玄机...
  8. CentOS6.8 下MySQL5.6.29主从复制架构配置
  9. pid和linux的关系,linux – bash pid和$$之间的区别
  10. 过去15年,到底是什么真正推动了云计算的革命?
  11. opencv 骨架提取_抗爆墙方盛提取车间抗爆墙记录@温州贴吧
  12. 最新解决kindeditor上传到服务器接收失败
  13. Django--表单
  14. java混淆器最好_使用混淆器,保护你的java程序
  15. 操作系统实验七(银行家算法)
  16. 视频格式与编码压缩标准 mpeg4,H.264.H.265 有什么关系?
  17. 2021大数据工程师就业前景及发展方向分析
  18. linux 实时监控系统IO状态和IO性能
  19. easypoi导出EXCEL表格,WPS能打开,OFFICE打不开问题
  20. linux开源社区贡献代码,4岁小萝莉向Linux内核贡献代码修复「漏洞」而且代码已经合并到内核...

热门文章

  1. RT-Thread Studio升级首推完美暗黑主题
  2. 硬件系列(一)----------WIFI打印机之使用socket进行打印机搜索
  3. VS编程之查看数组信息
  4. 关于Albedo贴图、颜色贴图、Metallic 贴图、Specular贴图、法线贴图、视差贴图、凹凸贴图、Height Map高度贴图、AO 贴图Occlusion 贴图、Emission 贴图等
  5. QQ IM架构学习总结
  6. [web前端] 去哪儿网前端架构师司徒正美:如何挑选适合的前端框架?
  7. BIGEMAP教您如何选择分度带(中央子午线)
  8. matlab:读取图像序列
  9. NC—NCC常用数据库表
  10. hierachyview的实现框架