爬虫的分类

爬虫的分类

网络爬虫按照系统结构和实现技术,大致可分为4类,即通用网络爬虫、聚焦网络爬虫、增量网络爬虫和深层次网络爬虫。

1.通用网络爬虫:搜索引擎的爬虫

比如用户在百度搜索引擎上检索对应关键词时,百度将对关键词进行分析处理,从收录的网页中找出相关的再根据一定的排名规则进行排序后展现给用户,那么就需要尽可能多的互联网的优质网页。

从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果。

2.聚焦网络爬虫:针对特定网页的爬虫

也叫主题网络爬虫,爬取的 目标网页定位在与主题相关的页面中 ,主要为某一类特定的人群提供服务,可以节省大量的服务器资源和带宽资源。聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。

比如要获取某一垂直领域的数据或有明确的检索需求,此时需要过滤掉一些无用的信息。

例如:那些比较价格的网站,就是爬取的其他网站的商品。

3.增量式网络爬虫

增量式网络爬虫(Incremental Web Crawler),所谓增量式,即增量式更新。增量式更新指的是再更新的时候只更新改变的地方,而为改变的地方则不更新,所以该爬虫只爬取内容发生变化的网页或者新产生的网页。比如:招聘网爬虫

4.深层网络爬虫

深层网络爬虫(Deep Web Crawler),首先,什么是深层页面?

在互联网中,网页按存在方式划分为表层页面和深层页面。所谓表层页面,指的是不需要提交表单,使用静态的链接能够到达的静态页面;而深层页面是需要调教一定的关键词之后才能获取的页面。在互联网中,深层页面数量往往比表层页面多得多。

深层网络爬虫主要由URL列表、LVS【虚拟服务器】列表、爬行控制器、解析器、LVS控制器、表单分析器、表单处理器、响应分析器等构成。

后面我们主要学习聚焦爬虫,聚焦爬虫学会了,其他类型的爬虫也就能轻而易举的写出来

通用爬虫与聚焦爬虫的原理

通用爬虫:

第一步:抓取网页(url)

在这里插入图片描述

  1. start_url发送请求,在获取响应解析;
  2. 从响应解析中获取到了需要的新的url,将这些URL放入待抓取URL队列;
  3. 取出待抓取URL,解析DNS得到主机的IP,并将URL对应的网页下载下来,存储进已下载网页库中,并且将这些URL放进已抓取URL队列。
  4. 分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环…

第二步:数据存储

搜索引擎通过爬虫爬取到的网页,将数据存入原始页面数据库。其中的页面数据与用户浏览器得到的HTML是完全一样的。

搜索引擎蜘蛛在抓取页面时,也做一定的重复内容检测,一旦遇到访问权重很低的网站上有大量抄袭、采集或者复制的内容,很可能就不再爬行。

第三步:预处理

搜索引擎将爬虫抓取回来的页面,进行各种步骤的预处理。

  • 提取文字
  • 中文分词
  • 消除噪音(比如版权声明文字、导航条、广告等……)
  • 索引处理
  • 链接关系计算
  • 特殊文件处理

除了HTML文件外,搜索引擎通常还能抓取和索引以文字为基础的多种文件类型,如 PDF、Word、WPS、XLS、PPT、TXT 文件等。我们在搜索结果中也经常会看到这些文件类型。

但搜索引擎还不能处理图片、视频、Flash 这类非文字内容,也不能执行脚本和程序。

第四步:提供检索服务,网站排名

搜索引擎在对信息进行组织和处理后,为用户提供关键字检索服务,将用户检索相关的信息展示给用户。

聚焦爬虫

在这里插入图片描述

第一步:start_url 发送请求

第二步:获取响应(response)

第三步:解析响应,若响应中有需要的新的url地址,重复第二步;

第四步:提取数据

第五步:保存数据

通常,我们会把获取响应,解析放在一个步骤中完成,所以说,聚焦爬虫的步骤,通俗的来讲一共四步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/223094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

乳品加工ERP包含哪些模块?乳品加工ERP常用哪家

乳品的加工管理涉及原材料采购、供应商选择、品质检验、车间排期、库龄分析、保质期、包装等诸多环节,其中某一个环节出现问题都将可能导致乳品的质量存在问题,从而导致企业的整体效益受到影响。 而电商等行业的发展也间接促进乳品行业管理模式的变革&a…

node使用JSON Web Token (JWT)身份验证

文章目录 前言一、安装依赖二、使用1、默认同步签名&#xff08;HMAC SHA256<**>HS256&#xff09;对称秘钥2、同步签名&#xff08;RSA SHA256<**>RS256&#xff09;非对称秘钥&#xff08;推荐&#xff09;3、其他 三、设置时间回溯时间过期时间如有启发&#xf…

cellranger处理单细胞数据的一些错误记录

cellranger处理单细胞数据的一些错误记录 1、由于fastq不完整报错报错信息原因解决方案 2、化学版本选择错误报错信息原因解决方案 1、由于fastq不完整报错 报错信息 [error] Pipestance failed. Error log at: YS2310077_T_C_5/SC_RNA_COUNTER_CS/SC_MULTI_CORE/MULTI_CHEMI…

机器学习算法---分类

当然&#xff0c;让我为您提供更详细的机器学习算法介绍&#xff0c;重点在于每种算法的原理、优缺点&#xff0c;并在注意事项中特别提到它们对非平衡数据和高维稀疏数据的适应性。 1. 决策树&#xff08;Decision Trees&#xff09; 原理&#xff1a; 决策树通过学习简单的…

【前端学习记录】下载功能实现小记

前言 在项目中&#xff0c;通常会遇到很多需要下载的需求&#xff0c;那么应该如何处理下载功能呢&#xff1f; 通过模拟a标签实现下载 直接上代码 <template><div><p click"downloadFile" style"cursor: pointer; color: blue;">Do…

亚马逊云科技 re:Invent 大会 - S3 对象存储华丽升级

亚马逊云科技 re:Invent 大会 - S3 对象存储华丽升级 本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道。 文章目录 亚马逊云科技 re:Inv…

【MySQL】:数据类型

数据类型 一.数值类型1.整数1.tinyint2.bit类型 2.浮点类型1.float2.decimal 二.字符串类型1.char类型2.varchar类型3.char和varchar的区别4.日期和时间类型5.enum和set 三.集合查询 一.数值类型 1.整数 1.tinyint 正常插入 越界插入 如果我们向mysql特定的类型中插入不合法的…

springboot-redis设置定时触发任务详解

最近研究了一下“redis定时触发”&#xff0c;网上查了查资料&#xff0c;这里记录一下。 从Redis 2.8.0开始&#xff0c;Redis加入了发布/订阅模式以及键空间消息提醒&#xff08;keyspace notification&#xff09;功能。键空间消息提醒提供了允许客户端通过订阅指定信道获取…

Unity Mono加密解决方案

Unity Mono 是 Unity 引擎默认的脚本运行时环境&#xff0c;在游戏开发中扮演着重要的角色。Mono 由跨平台的开源 .NET 框架实现&#xff0c;它允许开发者使用 C# 等编程语言编写游戏逻辑。凭借简单易用的开发环境和高效的脚本编译速度&#xff0c;得到了众多游戏的青睐。 在 …

【Maven教程】(十二):版本管理 ——版本号定义约定及相关概念,自动化版本发布与创建分支,GPG签名 ~

Maven 版本管理 1️⃣ 版本管理的概念2️⃣ Maven 的版本号定义约定3️⃣ 主干、标签与分支4️⃣ 自动化版本发布5️⃣ 自动化创建分支6️⃣ GPG签名6.1 GPG 及其基本使用6.2 Maven GPG Plugin &#x1f33e; 总结 一个健康的项目通常有一个长期、合理的版本演变过程。例如JUn…

win10 + vs2017 + cmake3.17编译OSG-3.4.1

1. 下载文件 主要用到4个文件 1&#xff09;OSG-3.4.1源码2&#xff09;OSG第三方依赖库3&#xff09;OSG示例数据4&#xff09;cmake-3.17 我已经准备好了&#xff0c;大家可以自行下载。下载路径&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1E3YESh0T9KPlJJe2…

利用Python+selenium技术,实现浏览器基本操作详解,代码有详细注释

首先&#xff0c;需要安装selenium库和对应的浏览器驱动程序。以Chrome浏览器为例&#xff0c;可以使用以下命令安装selenium和chromedriver&#xff1a; pip install selenium然后&#xff0c;需要下载对应版本的chromedriver&#xff0c;并将其添加到环境变量中。下载地址&a…

代码随想录二刷 |二叉树 |144.二叉树的前序遍历

代码随想录二刷 &#xff5c;二叉树 &#xff5c;144.二叉树的前序遍历 题目描述解题思路代码实现递归法迭代法 题目描述 144.二叉树的前序遍历 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输…

godot 报错Unable to initialize Vulkan video driver解决

版本 godot 4.2.1 现象 godot4.2.1 默认使用vulkan驱动&#xff0c;如果再不支持vulkan驱动的主机上&#xff0c;进入引擎编辑器将报错如下 解决 启动参数添加 –rendering-driver opengl3 即可进入引擎编辑器 此时运行项目仍然会报错无法初始化驱动 在项目设置中配置编…

面试__Java常见异常有哪些?

java.lang.IllegalAccessError&#xff1a;违法访问错误。当一个应用试图访问、修改某个类的域&#xff08;Field&#xff09;或 者调用其方法&#xff0c;但是又违反域或方法的可见性声明&#xff0c;则抛出该异常。 java.lang.InstantiationError&#xff1a;实例化错误。当…

vue实现公式编辑器组件

实现方式一 1、效果图 2、实现代码 组件弹框实现 样式自己调整 公式的数字与汉字元素、符号 建立元素表 动态获取 完整代码&#xff08;calculate.vue&#xff09; <template><div id"formulaPage"><divref"formulaView"class"f…

记录今日将C语言的Windows程序更改为python语言Windows程序,实现子窗口控制,类似微信程序框架最简单的原型

基本思路 为什么要选择python制作Windows应用程序&#xff0c;主要就是源代码直接展示&#xff0c;发现问题随时修改&#xff0c;同时可以不断增加新的功能方便。 由于C语言的Windows程序中结构类型在python中不能使用&#xff0c; 因此我们按照ctypes模块指导意见继承structu…

Verilog自学还是报班?

FPGA作为国内领先的芯片产品&#xff0c;和传统芯片相比并不局限于单纯的研究和设计芯片&#xff0c;而是针对多种领域的产品通过特定的芯片模型进行优化设计。FPGA本身也构成了典型的半定制电路&#xff0c;涵盖了数字管理模块、输入、输出等单元。 FPGA最大的特点是可以在同…

Unity_C#中使用protobuf

Unity_C#中使用protobuf 下载官方protobuf地址&#xff1a; https://github.com/protocolbuffers/protobuf/releaseshttps://links.jianshu.com/go?tohttps%3A%2F%2Fgithub.com%2Fprotocolbuffers%2Fprotobuf%2Freleases protobuf-c#源码生成dll&#xff0c;导入unity 1.…