爬虫设计思考之二

“所谓爬虫,其本质是一种计算机程序,它的行为看起来就像是蜘蛛在网上面爬行一样,顺着互联网这个“网”,一条线一条线地“爬行”。

一、认识爬虫

爬虫这个词对于非专业人士比较的陌生,但是实际却和我们的生活息息相关。例如我们国内经常使用的百度浏览器搜索,它是最大的中文检索引擎。就是使用大型爬虫作为数据获取的支撑,那么百度爬虫叫什么?实际上百度爬虫有自己的名称:Baiduspider。还有我们常见的搜所引擎:360浏览器搜索引擎称作360spider。等等很多国内外的搜索都是基于强大的爬虫支撑的,源源不断的获取互联网公开的数据。

百度搜索引擎,其实可以更形象地称之为百度蜘蛛(Baiduspider),它每天会在海量的互联网信息中爬取优质的信息,并进行收录。当用户通过百度检索关键词时,百度首先会对用户输入的关键词进行分析,然后从收录的网页中找出相关的网页,并按照排名规则对网页进行排序,最后将排序后的结果呈现给用户。在这个过程中百度蜘蛛起到了非常想关键的作用。

百度的工程师们为“百度蜘蛛”编写了相应的爬虫算法,通过应用这些算法使得“百度蜘蛛”可以实现相应搜索策略,比如筛除重复网页、筛选优质网页等等。应用不同的算法,爬虫的运行效率,以及爬取结果都会有所差异。

二、爬虫的类别

根据不同的需求:爬虫可以分为三类:通用的爬虫(普通爬虫)、定向爬虫(聚焦爬虫)、增量式爬虫;

  1. 通用爬虫

一般是我们获取互联网的全部数据,类如我们有一个需求,爬虫需要获取所有的用户提供的网页数据,我们怎么编写这个通用的爬虫呢,一般我们就只需要编写一个爬虫获取页面的源代码并返回就可以了,这个获取网页源代码的爬虫就称为通用爬虫,因为这个爬虫可以获取所有的静态页面的网页源代码,然后在基于页面做一些数据的处理和分析。

百度爬虫其实就是最大的通用爬虫,用户提交一些页面的链接给百度,百度获取获取这个页面的源代码,并根据一些算法处理,将获取到的数据通过用户的搜索,呈现给用户原这个站点的信息。

  1. 定向爬虫

是爬虫工程师主要的工作,需要按照一定的需求,对指定的站点数据编写定向爬虫采集指定的相关数据。

例如一个需求需要获取百度搜索结果页面的百度排名信息,就需要爬虫工程师针对百度搜索页面编写指定的爬虫代码获取所需要的排名信息的指定的字段值。定向爬虫主要是我们需要对很多的站点编写不同的解析规则,获取对我们有价值的数据。

  1. 增量爬虫

顾名思义就是增加增加爬虫获取的数据量,数据增量我们需要对某一个小说的站点文章持续的进行获取最新更新的文章数据,就称之为增量式爬虫。增量爬虫我们需要对已采集的数据进行去重的处理。

例如我们需要对某站点的资讯数据进行同步获取,这时我们可以对站点进行爬虫的开发,获取指定的数据字段,并部署一个定时任务,每天获取两次目标站点的数据,如果站点数据存在更新,增量爬虫就会获取新增的资讯数据,否则就不会做任何的处理。这个在实际的工作中应用的比较的多的。

三、爬虫在现实中的应用

随着现在的数据需求越来越多,大数据已经成为了我们非常熟知的一个名词,现在互联网的大数据处理发展也是非常的快了,部分公司的日均数据量达到了千万甚至亿级。

就需要对这种数据做一些分析处理,例如商品用户人群信息的分析、用户购买习惯的分析、用户数据的推荐处理、互联网数据的收集处理等都需要大数据作为分析的基础。那么这么多的数据从哪里来呢?一部分基于企业的内部的数据另一部分基于互联网的公开数据。互联网的公开是数据就需要使用爬虫技术源源不断的获取大量的企业所需的数据,以此来完成企业所需要的业务需求。大量的数据充实企业的数据仓库,丰富企业的数据多元化。为企业走向数据智能以及由传统的互联网企业转型成为数字型高科技企业,依托大数据的分析,帮助企业指定未来的发展目标,开拓企业业务走向专业或者走向多元化的发展之路。

  • 数据分析的应用

海量的数据需要处理,那么如何搜集海量的数据作为分析的结果呢?如何将分散在很多个地方的数据搜集起来用于业务场景的需求分析呢?那么爬虫将会成为一把利器!

利用爬虫技术将分散的数据按照需求搜集、整理起来,使用python针对不同的业务需求做专业的数据分析,快速得出专业的结果!数据分析的场景应用十分的的常见:大量的数据需要数字化展示,很多的指标通过分析后得出结果,并将这部分的数据值进行展示。方便实时的查看实际的数据指标的波动变化,制定出不同的应对措施。

  • 企业发展的应用

很多的企业都是比较传统的互联网或者工业互联网。他们对业务的分析以及业务的发展一般是通领导对自身行业自主的判断以及按照经验做出的决策并制定出一系列的发展前景。

但是随着企业的发展数据量增长以及企业的业务增长出现缓慢,希望可以对一些数据做分析,基于这些数据对后续的企业发展做出一些调整的时候,就需要指定出一套企业的自身数据的数字化发展决策道路。那么爬虫就可以帮助收集所需要的各种数据,帮助企业进行数据的分析,指定出符合企业自身发展的数字化道路。数字化的应用可以让领导以及决策者实时的关注到企业的一些业务发展,并及时的发现问题,并解决问题。促进企业的健康发展!

  • 科学研究你的应用

随着国内外科学技术的发展,大量的科学模型应运而生

这些模型的背后数很多的工程师不断的努力的结果。科学是严谨的,需要数据作为科学研究的依据!许多的科研人员并不懂得计算机以及爬虫的技术。很多的时候对数据的需求都需要依赖团队中的计算机人才,尤其是获取一些专业的网站的数据,用于做数据的大模型的训练;例如自然语言的发展,对数据的需求是非常大的,需要大量的数据作为模型分析的基础,对设计的不同的模型,需要的数据也是不一样的。海量的数据获取变得尤为重要。也是促进自然语言不断发展以及走向更加智能化的必须要素!

  • 人工智能的应用

人工智能这个词已经是众人皆知的了。随着科学技术的发展人工智能的发展突飞猛进。

例如自动驾驶现在非常的火,车企砸重金开发自动驾驶以及自动语音对话的人机交互系统。都离不开数据这个基本的要素。自动驾驶需要搜集车辆运行过程中的大量的驾驶信息以及驾驶环境的信息。发送给后台基于算法制定出安全合理的线路。人机交互系统的开发,人们希望开车的时候,能和车机系统进行智能对话,希望机器明白人类的语言并作出回应,那么机器如何能知道我们的说的意思呢?这里就需要依靠人工智能技术,开发人机对话的大模型,基于人类说话化的语义进行推导分析,让机器识别出人类说话的语义。可以把机器想象成一个‘孩童’,人工智能基于大数据仓库给这个孩童训练基本的理解、认知能力,就需要对数据标记,告诉孩童什么是对的什么错的,以及训练他认识物体。让他具备推理的能力。可以和人类进行对话。

四、爬虫的利与弊

爬虫可以帮助我们搜集海量的数据,提高检测、浏览、决策、分析、训练等很多的方向。但是这些数据如果被心术不正的人获取到,也会危害网络安全甚至威胁生命财产安全。例如我们就经常看到传销的、绑架的、电信诈骗的。

这些人通过搜集获取我们的敏感数据,例如电话信息;家庭住址;给我们打很多的骚扰电话,甚至有些人被电信诈骗,最后人财两空。再有利用爬虫的技术获取别人网站的具有知识产权的产品数据用以恶意竞争都会给对方带来大量的损失。因此我们在这个方面的数据获取是,需要明确用户使用数据的用途,不能给不法分子利用了,于己于他都是有害的。

正确的使用数据,获取公开的数据、实现数据的共享以及利益的共享,就实现了双赢局面。

五、爬虫的基本流程

在实际的开发需求中我们需要遵守对方网站的robots.txt协议。这是一个君子协议,常常用于搜索引擎的采集搜录。但是我们也需要遵守基本的爬虫准则,采集不能对目标站点产生影响,不能影响站点的正常运行,采集的数据应用不能损害站点的利益。对双方都是有益的。

一般我们开发一个爬虫的流程是:

  1. 明确采集的需求,以及采集的内容(一般会提供一个网站的采集文档以及网站的链接)
  2. 基于采集的数据需求,分析目标站点的数据内容以及加载方式并进行测试
  3. 基于分析结果制定出采集的方案编写采集的代码,并调试。
  4. 采集的数据按照需求存入数据库
  5. 采集完成后对数据做基本的验证(验证数据是否与目标站点一致)
  6. 按照需求交付数据

我已经创建了爬虫与大模型开发的星球,非常适合小白入门及爱好爬虫的同学,更多爬虫相关内容我放到了星球,我已经在星球等同学们来了!

alt

本文由 mdnice 多平台发布

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

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

相关文章

线性代数 行列式

一、行列式 1、定义 一个数学概念,主要用于 线性代数中,它是一个可以从方阵(即行数和列数相等的矩阵)形成的一个标量(即一个单一的数值) 2、二阶行列式 ,像这样将一个式子收缩称为一个 2*2 的…

【数据结构】【链表代码】移除链表元素

移除链表元素 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* removeElements(struct ListNode* head, int val) { // 创建一个虚拟头节点,以处理头节点可能被删除的情况 struct…

【mysql 截断订单表order 报错】

truncate table order;这个是一个截断订单表的sql语句 看起来没有什么问题 但是实际执行的时候是会报错的 SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version…

4. 单例模式线程安全问题--是否加锁

单例模式线程安全问题--是否加锁 是否加锁问题指什么?解决多线程并发来带的问题继承MonoBehaviour的单例模式不继承MonoBehaviour的单例模式 总结 是否加锁问题指什么? 如果程序当中存在多线程,我们需要考虑当多个线程同时访问同一个内存空间…

计算机毕业设计 内蒙古旅游景点数据分析系统的设计与实现 Python毕业设计 Python毕业设计选题 Spark 大数据【附源码+安装调试】

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

element-plus组件之Upload(2.0)

接上篇 下面的属性就对应着回调函数,下面就一一进行介绍。 因为element-plus在封装upload组件时就自带了一个预览和删除的图标,只是没有方法实现,这里进行指明。 就是在图片墙列表中,自动就带了这两个图标和遮罩,下面…

pip安装指定版本的tensorflow

安装CPU版本:(以2.9.0版本为例) pip install tensorflow2.9.0安装GPU版本:(以2.9.0版本为例) pip install tensorflow-gpu2.9.0若下载缓慢,使用阿里国内镜像源加速下载:(以2.9.0版本为例) pip install -i https://mirrors.aliy…

[C#]使用纯opencvsharp部署yolov11-onnx图像分类模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 使用纯OpenCvSharp部署YOLOv11-ONNX图像分类模型是一项复杂的任务,但可以通过以下步骤实现: 准备环境:首先,确保开发环境已安装OpenCvSharp和必…

人脸识别face-api.js应用简介

前阵子学习了一下face-api.js ,偶有心得,跟大家分享一下。 face-api.js的原始项目是https://github.com/justadudewhohacks/face-api.js ,最后一个release是2020年3月22日的0.22.2版,组件较老,API文档很全,…

鸿蒙网络管理模块07——网络质量管理

如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。 1、概述 HarmonyOS提供了一套网络网络质量管理的套件(Network Boost Ki…

[论文笔记]DAPR: A Benchmark on Document-Aware Passage Retrieval

引言 今天带来论文DAPR: A Benchmark on Document-Aware Passage Retrieval的笔记。 本文提出了一个基准:文档感知段落检索(Document-Aware Passage Retrieval,DAPR)以及介绍了一些上下文段落表示的方法。 为了简单,下文中以翻译的口吻记录&#xff0c…

麒麟信安CentOS安全加固案例获评中国信通院第三届“鼎新杯”数字化转型应用奖

“鼎新杯”数字化转型应用大赛,由中国通信标准化协会主办、中国信息通信研究院承办,以落实国家“十四五”规划关于“加快数字化发展,建设数字中国”的总体要求为目标,意在打造一批具有产业引领与推广应用效应的企业数字化转型应用…

OCR+PDF解析配套前端工具开源详解!

目录 一、项目简介 TextIn为相关领域的前端开发提供了优秀的范本。 目前项目已在Github上开源! 二、性能特色 三、安装使用 安装依赖启动项目脚本命令项目结构 四、效果展示 面对日常生活和工作中常见的OCR识别、PDF解析、翻译、校对等场景,配套的…

【C++进阶】set的使用

1. 序列式容器和关联式容器 前面,我们已经接触过STL中的部分容器如:string、vector、list、deque、array、forward_list等,这些容器统称为序列式容器,因为逻辑结构为线性序列的数据结构,两个位置存储的值之间⼀般没有紧…

dvwa:暴力破解、命令注入、csrf全难度详解

暴力破解 easy模式 hydra -L /usr/share/wordlists/SecLists-master/Usernames/top-usernames-shortlist.txt -P /usr/share/wordlists/SecLists-master/Passwords/500-worst-passwords.txt 192.168.72.1 http-get-form "/dvwa/vulnerabilities/brute/:username^USER^&…

uni-app 开发的应用快速构建成鸿蒙原生应用

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,它支持编译到 iOS、Android、小程序等多个平台。对于 HarmonyOS(鸿蒙系统),uni-app 提供了特定的支持,允许开发者构建鸿蒙原生应用。 一、uni-app 对 HarmonyOS 的支…

UE5 C++ 通过绑定编辑器事件实现控制柄顶点编辑

开发中经常会遇到编辑器环境中制作工具拖拽控制柄编辑内容的需求,此时可以通过Editor事件拿到对应回调,进行相应更新: 1.创建Mesh编辑Actor类 创建一个Mesh编辑Actor类,提供Mesh顶点编辑的相关逻辑。 .h: #pragma once#inclu…

Mac上强大的菜单栏管理工具

想要Mac用的好,各种工具少不了,一款好用的软件对于提高使用效率和使用舒适度来说非常必要,iBar-强大的菜单栏图标管理工具 随着 Mac 运行的软件增加,状态栏中的图标也越来越多,不仅看得眼花缭乱,而且刘海屏…

Fetch 与 Axios:JavaScript HTTP 请求库的详细比较

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…

基于SpringBoot民宿预订系统小程序【附源码】

效果如下: 管理员登录界面 管理员功能界面 用户管理界面 房东管理界面 小程序首页界面 民宿房间界面 功能界面 研究背景 随着旅游业的蓬勃发展和人们对旅行体验的不断追求,民宿作为一种独特的住宿方式,因其个性化、温馨及富含地方特色的服务…