爬虫设计思考之二

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

一、认识爬虫

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

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

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

二、爬虫的类别

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

  1. 通用爬虫

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

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

  1. 定向爬虫

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

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

  1. 增量爬虫

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

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

三、爬虫在现实中的应用

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

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

  • 数据分析的应用

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

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

  • 企业发展的应用

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

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

  • 科学研究你的应用

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

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

  • 人工智能的应用

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

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

四、爬虫的利与弊

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

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

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

五、爬虫的基本流程

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

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

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

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

本文由mdnice多平台发布

相关推荐
网易独家音乐人Mike Zhou13 分钟前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
安静读书15 分钟前
Python解析视频FPS(帧率)、分辨率信息
python·opencv·音视频
小二·2 小时前
java基础面试题笔记(基础篇)
java·笔记·python
小喵要摸鱼3 小时前
Python 神经网络项目常用语法
python
一念之坤5 小时前
零基础学Python之数据结构 -- 01篇
数据结构·python
wxl7812275 小时前
如何使用本地大模型做数据分析
python·数据挖掘·数据分析·代码解释器
NoneCoder5 小时前
Python入门(12)--数据处理
开发语言·python
LKID体6 小时前
Python操作neo4j库py2neo使用(一)
python·oracle·neo4j
小尤笔记6 小时前
利用Python编写简单登录系统
开发语言·python·数据分析·python基础
FreedomLeo16 小时前
Python数据分析NumPy和pandas(四十、Python 中的建模库statsmodels 和 scikit-learn)
python·机器学习·数据分析·scikit-learn·statsmodels·numpy和pandas