微信登录
注册忘记密码
查看: 1842|回复: 11

数据化时代,爬虫工程师才是真正“扛把子”

[复制链接]

签到天数: 1 天

[LV.1]初来乍到

发表于 2022-7-13 11:57:26 | 显示全部楼层 |阅读模式
在如今信息化、数字化的时代,人们已经离不开网络搜索了,但细想一下,你在搜索过程中能够真正获得相关信息,是因为有人在帮你把与之相关的内容筛选和呈递到你面前了。

就像在饭店里,你点了土豆并且能吃到,是因为有人帮你在土豆、萝卜、西红柿等中找到土豆,也有人把土豆拿到你桌上。在网络上,这两个动作都是由一位叫做爬虫的同学帮你实现的。

也就是说,没有爬虫,就没有今天的检索,你就不能精确地查找信息、有效地获取数据。今天DataHunter数猎哥就来说说爬虫在数据分析领域的应用,以及它是如何帮助我们提升数据分析质量的。

一、数据化时代,爬虫的本质是提升效率

网络爬虫也叫网络机器人,可以代替人们自动化浏览网络中的信息,进行数据的采集与整理。

它是一种程序,基本原理是向网站/网络发起请求,获取资源后分析并提取有用数据。从技术层面来说,就是通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,并存放起来使用。

每一个程序都有自己的规则,网络爬虫也不例外。它穿梭于全球各个网站中间,会根据人们施加的规则去采集信息,我们称这些规则为网络爬虫算法。规则是人定的,是人根据自己的目的与需求设计的,因此,根据使用者的目的,爬虫可以有不同的功能。但所有爬虫的本质,都是方便人们在海量的互联网信息中找到并下载到自己要的那一类,提升信息获取效率。

二、爬虫的应用:搜索与帮助企业强化业务

1.搜索引擎:爬站点,为网络用户提供便利
在网络发展伊始,全球范围内能提供信息的网站数量不多,用户也不多。互联网只是文件传输协议(FTP)站点的集合,用户可以在这些站点中导航以找到特定的共享文件,而为了查找和组合互联网上可用的分布式数据,人们创建了一个自动化程序,称为网络爬虫/机器人,可以抓取网上的所有网页,然后将所有页面上的内容复制到数据库中制作索引。这也是最早期的搜索引擎。
如今随着互联网的高速发展,我们能够在任何一个搜索引擎中看到来自全球各个网站的信息。百度搜索引擎的爬虫叫做百度蜘蛛(Baiduspider),360的爬虫叫360Spider,搜狗的爬虫叫Sogouspider,必应的爬虫叫Bingbot。搜索引擎离不开爬虫。
比如百度蜘蛛每天会在海量的互联网信息中进行爬取,爬取优质信息并收录。当用户在百度搜索引擎上检索对应关键词时,百度将对关键词进行分析处理,从收录的网页中找出相关网页,按照一定的排名规则进行排序并将结果展现给用户,工作原理如图所示。现在,我们可以大胆地说,你每天都在免费享受爬虫的福利。


2.企业:监控舆情,高效获取有价值信息
我们说过,爬虫的本质是提升效率,爬虫的规则是人定的;那么企业就完全可以根据自己的业务需求去设计一个爬虫,第一时间得到网络上与其相关信息,并且进行清洗和整合。
大数据时代要进行数据分析,首先要有数据源,而网络爬虫可以让我们获取更多数据源的同时,按照我们的目的进行采集,从而去掉很多无关数据。
比如在进行大数据分析或数据挖掘时,数据源可以从某些提供数据统计的网站获取,也可以从某些文献或内部资料中获得。但是这些获得数据的方式,有时很难满足我们对数据的需求。此时,就可以利用爬虫技术,自动地从互联网中获取更多我们感兴趣的的数据内容,从而进行更深层次的数据分析,并获得更多有价值的信息。
除此以外,网络爬虫还可以应用于金融分析中对金融数据进行采集,用以进行投资分析;应用于舆情监测与分析、目标客户精准营销等各个领域。

三、4种企业常用的网络爬虫

网络爬虫按照实现的技术和结构可以分为通用网络爬虫聚焦网络爬虫增量式网络爬虫深层网络爬虫等类型。但实际的网络爬虫由于复杂的网络环境,通常是这几类爬虫的组合体。



1.通用网络爬虫

通用网络爬虫又叫作全网爬虫,顾名思义,爬取的目标资源在全互联网中,所爬取的目标数据是巨大的,并且爬行的范围也是非常大的。正是由于其爬取的数据是海量数据,所以对于这类爬虫来说,其爬取的性能要求是非常高的。这种网络爬虫主要应用于大型搜索引擎中,有非常高的应用价值。

通用网络爬虫主要由初始URL集合、URL队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块等构成。通用网络爬虫在爬行的时候会采取一定的爬行策略,主要有深度优先爬行策略和广度优先爬行策略,具体详情在后文中会有介绍。



2.聚焦网络爬虫

聚焦网络爬虫也叫主题网络爬虫,是按照预先定义好的主题有选择地进行网页爬取的一种爬虫。聚焦网络爬虫主要应用在对特定信息的爬取中,主要为某一类特定的人群提供服务。

聚焦网络爬虫同样由初始URL集合、URL队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块、内容评价模块、链接评价模块等构成。其中的内容评价模块和链接评价模块可以根据链接和内容的重要性,确定哪些页面优先访问。聚焦网络爬虫的爬行策略主要有4种,如图所示:

聚焦网络爬虫由于可以按对应的主题有目的地进行爬取,所以在实际的运用过程中可以节省大量的服务器资源和宽带资源,因而具有很强的实用性。这里我们以聚焦网络爬虫为例来了解爬虫运行的工作原理和流程。

如图所示,聚焦网络爬虫拥有一个控制中心,该控制中心负责对整个爬虫系统进行管理和监控,主要包括控制用户交互、初始化爬行器、确定主题、协调各模块之间的工作、控制爬行过程等方面:

(1)控制中心将初始的URL集合传递给URL队列,页面爬行模块会从URL队列中读取第一批URL列表;

(2)根据这些URL地址从互联网中进行相应的页面爬取;爬取后,将爬取到的内容传到页面数据库中存储;

(3)在爬行过程中,会爬取到一些新的URL,此时,需要根据所定的主题使用链接过滤模块过滤掉无关链接,再将剩下来的URL链接根据主题使用链接评价模块或内容评价模块进行优先级的排序。完成后,将新的URL地址传递到URL队列中,供页面爬行模块使用;

(4)将页面爬取并存放到页面数据库后,需要根据主题使用页面分析模块对爬取到的页面进行页面分析处理,并根据处理结果建立索引数据库,用户检索对应信息时,可以从索引数据库中进行相应的检索,并得到对应的结果。



3.增量式网络爬虫

这里的“增量式”对应着增量式更新,增量式更新指的是在更新的时候只更新改变的地方,而未改变的地方则不更新。

增量式网络爬虫,在爬取网页的时候,只爬取内容发生变化的网页或者新产生的网页,对于未发生内容变化的网页,则不会爬取。增量式网络爬虫在一定程度上能够保证所爬取的页面,尽可能是新页面。



4.深层网络爬虫

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

深层网络爬虫可以爬取互联网中的深层页面,爬取深层页面,需要想办法自动填写好对应表单。深层网络爬虫主要由URL列表、LVS列表(LVS指的是标签/数值集合,即填充表单的数据源)、爬行控制器、解析器、LVS控制器、表单分析器、表单处理器、响应分析器等部分构成。

四、网络爬虫的爬取策略

在前面我们说过网络爬虫算法是根据人们施加的规则去采集信息,而由于网络复杂的环境,所以相应的也有各种不同算法,也就是爬取策略。这里我们主要介绍下爬取的顺序与频率。

1.爬取顺序

在网络爬虫爬取的过程中,在带爬取的URL列表中可能有很多URL地址,那么爬虫爬取这些URL地址就会有先后顺序。

相对于通用网络爬虫,爬取的顺序并不是那么重要。但聚焦网络爬虫,爬取的顺序与服务器资源和宽带资源有关,所以非常重要,一般由爬行策略决定。爬行策略主要有深度优先爬行策略、广度优先爬行策略、大站优先策略、反链策略、其他爬行策略等。

如图所示,假设有一个网站,ABCDEFG分别为站点下的网页,如图所示表示网页的层次结构。假如此时网页ABCDEFG都在爬行队列中,那么按照不同的爬行策略,其爬取的顺序是不同的。



深度优先爬行策略:A→D→E→B→C→F→G

广度优先爬行策略:A→B→C→D→E→F→G



除了以上两种爬行策略之外,还可以采用大站爬行策略。可以按对应网页所属的站点进行归类,如果某个网站的网页数量多,则将其称为大站,按照这种策略,网页数量越多的网站越大,然后,优先爬取大站中的网页URL地址。



另外还有反链策略,一个网页的反向链接数,指的是该网页被其他网页指向的次数,这个次数在一定程度上代表着该网页被其他网页的推荐次数。所以,如果按反链策略去爬行的话,那么哪个网页的反链数量越多,则哪个网页将被优先爬取。



但是在实际情况中,如果单纯按反链策略去决定一个网页的优先程度的话,那么可能会出现大量的作弊情况。所以采用反向链接策略需要考虑可靠的反链数。除了以上这些爬行策略,在实际中还有很多其他的爬行策略,比如OPIC策略、Partial PageRank策略等。



2.爬取频率

一个网站的网页是经常更新的,作为爬虫方,网站的更新频率与爬虫访问网站的频率越接近,则效果越好。当然,在爬虫服务器资源有限的情况下,爬虫也需要根据对应策略,让不同的网页具有不同的更新优先级,优先级高的网页更新,将获得较快的爬取响应。常见的网页更新策略主要有如下3种:

(1)用户体验策略:大部分用户在使用搜索引擎查询某个关键词的时候,只会关注排名靠前的网页,所以,在爬虫服务器资源有限的情况下,爬虫会优先更新排名结果靠前的网页。

(2)历史数据策略:指的是可以依据某一个网页的历史更新数据,通过泊松过程进行建模等手段,预测该网页下一次更新的时间,从而确定下一次对该网页爬取的时间。

(3)聚类分析策略:网页可能具有不同的内容,但是一般来说,具有类似属性的网页其更新频率类似,所以可以对海量的网页进行聚类分析,聚类完成后,可以依据同一个类型网页平均更新值来设定爬取的频率。

五、网络爬虫的实现技术

对于实现技术,本文不做展开,仅为有兴趣的同学提供几个常见的语言:Python、Java、PHP、Node.JS、C++、Go语言(此外,网络爬虫的开发语言还有很多)。

Python:爬虫框架非常丰富,并且多线程的处理能力较强,并且简单易学、代码简洁,优点很多。

Java:适合开发大型爬虫项目。

PHP:后端处理很强,代码很简洁,模块也较丰富,但是并发能力相对来说较弱。

Node.JS:支持高并发与多线程处理。

C++:运行速度快,适合开发大型爬虫项目,成本较高。

Go语言:同样高并发能力非常强。

六、小结

说到爬虫,很多人都认为它是网络世界中一个不可而为之的灰色地带。恭喜你,读完这篇文章,你对此的认知就超过了好多人。

因为爬虫分为善意爬虫和恶意爬虫,例如,搜索引擎的爬虫。善意爬虫严格遵守Robots协议规范爬取网页数据(如URL),它的存在能够增加网站的曝光度,给网站带来流量;

而恶意爬虫,它无视Robots协议,对网站中某些深层次的、不愿意公开的数据肆意爬取,其中不乏个人隐私或者商业秘密等重要信息。并且恶意爬虫的使用方希望从网站多次、大量的获取信息,所以其通常会向目标网站投放大量的爬虫。如果大量的爬虫在同一时间对网站进行访问,很容易导致网站服务器过载或崩溃,造成网站经营者的损失。

据统计,我国2017年互联网流量有42.2%是由网络机器人创造的,其中恶意机器(主要为恶意爬虫)流量占到了21.80%。我们应该依法合理地使用网络爬虫,这样才能运用技术为企业带来长久发展,用科学为社会创造更高价值。

关于 DataHunter
DataHunter 是一家专业的数据分析和商业智能服务提供商,注册于2014年。团队核心成员来自 IBM、Oracle、SAP 等知名公司,深耕大数据分析领域,具有十余年丰富的企业服务经验。
DataHunter 旗下核心产品智能数据分析平台 Data Analytics、数据大屏设计配置工具 Data MAX 已在业内形成自己的独特优势,并在各行业积累了众多标杆客户和成功案例。
成立以来,DataHunter就致力于为客户提供实时、高效、智能的数据分析展示解决方案,帮助企业查看分析数据并改进业务,成为最值得信赖的数据业务公司。


声明:以上内容来源于网络,如有侵权请联系我们(123@shiyan.com)删除!

该用户从未签到

发表于 2022-7-13 11:59:06 | 显示全部楼层
然而几乎所有的大数据爬虫公司都被查了
回复 支持 反对

使用道具 举报

头像被屏蔽

签到天数: 1 天

[LV.1]初来乍到

发表于 2022-7-13 12:00:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-7-13 12:03:52 | 显示全部楼层
技术无罪
回复 支持 反对

使用道具 举报

签到天数: 19 天

[LV.4]偶尔看看III

发表于 2022-7-13 12:06:55 | 显示全部楼层
有没智能爬虫,基于TF的。
自动查找元素,找到链接或文本。
回复 支持 反对

使用道具 举报

头像被屏蔽

该用户从未签到

发表于 2022-7-13 12:09:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-7-13 12:13:35 | 显示全部楼层
爬虫烂大街,都快找不到工作了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-7-13 12:18:24 | 显示全部楼层
1
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-7-13 12:20:20 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-7-13 12:22:46 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则