首发于 人工智能大数据学习交流
网络爬虫详解:原理、工作流程及爬取策略(一)

网络爬虫详解:原理、工作流程及爬取策略(一)

大数据时代,关于网络信息数据的采集需求越来越多,如果单纯靠人力进行信息采集,整个过程不仅低效繁琐,搜索成本、错误率也会随着需求的增加而逐渐变高。

互联网中的数据无疑是海量的,如何自动高效地获取信息并为我们所用是一个重要的问题。因此,基于节约成本、时间和资源等因素综合考虑,我们可以通过使用网络爬虫对数据信息进行自动采集。

在企通查上篇对网络数据采集介绍的文章中,我们对什么是网络爬虫进行了简要介绍,本文将主要对爬虫的原理、具体工作流程、爬取策略等几点内容进行介绍。

——

网络爬虫也被称做网络机器人、网络蜘蛛、网络蚂蚁、网络机器人等。

网络爬虫通常由控制节点、爬虫节点和资源库构成。下图所示是网络爬虫的控制节点以及爬虫节点的结构关系。

控制节点,也叫做爬虫的中央控制器,主要负责根据URL地址(URL:UniformResourceLocation,统一资源定位符,即Internet上用来描述信息资源的字符串,主要用在各种www客户程序和服务器程序上)分配线程,并调用爬虫节点进行具体的爬行任务。

爬虫节点,会按照相关算法对网页进行具体爬行(包括下载网页、对网页文本进行处理等),爬行后会将相应的结果存储到对应的资源库中。

图:网络爬虫的控制节点和爬虫节点的结构关系,来源于网络


从图中我们可以看到,网络爬虫中可以有多个控制节点,而每个控制节点下又可以有多个爬虫节点。

控制节点之间、控制节点和其下的各爬虫节点间、同一控制节点下的各爬虫节点间都可以相互通信。

我们已经基本了解了网络爬虫的组成,那么,网络爬虫具体有哪些类型呢?

根据实现的技术和结构,网络爬虫可以分为通用网络爬虫、聚焦网络爬虫、增量式网络爬虫和深度网络爬虫等几种类型。在实际的网络爬虫中,通常都是这几类爬虫的组合体。

对于不同类型的网络爬虫,其实现原理也是不同的,但这些实现原理中,会存在很多共性。下面将以通用网络爬虫和聚焦网络爬虫为主,对网络爬虫的实现原理进行介绍。

1.通用网络爬虫

通用网络爬虫的实现原理及过程可简要概括如下图:

图:通用网络爬虫的实现原理及过程


1. 获取初始URL

初始URL地址可以由用户人为指定,也可以由用户指定的某个或某几个初始爬取网页决定。

2. 根据初始URL爬取页面并获得新的URL

获得初始URL地址之后,需要对对应的网页进行爬取,并将网页存储到原始数据库中,同时将已爬取的URL地址存放到一个URL列表中,并发现新的URL地址,以此来用于去重及判断爬取的进程。

3. 将新的URL放到URL队列中

在第2步中,会将新获取的URL地址放到URL队列中。

4. 重复爬取过程

从URL队列中读取新的URL,并依据新的URL爬取网页,同时再从新网页中获取新URL,并重复上述的爬取过程。

*在编写爬虫的时候,一般会设置相应的停止条件,当过程满足爬虫系统设置的停止条件时就停止爬取。相对地,如果没有设置停止条件,爬虫则会一直爬取下去,直到无法获取新的URL地址为止。

2.聚焦网络爬虫

由于聚焦网络爬虫需要有目的地进行爬取,所以相对于通用网络爬虫来说,聚焦网络爬虫还必须要增加目标定义及过滤机制,即目标的定义、无关链接的过滤、下一步要爬取的URL地址的选取等。

整个过程如下图所示:

图:聚焦网络爬虫的基本原理及其实现过程


1. 对爬取目标的定义和描述。

首先依据爬取需求定义好该聚焦网络爬虫爬取的目标及进行相关描述。

2.获取初始的URL。

3.根据初始的URL爬取页面,并获得新的URL。

4.从新的URL中过滤掉与爬取目标无关的链接。

因为聚焦网络爬虫对网页的爬取是有目的性的,所以与目标无关的网页将会被过滤掉。同时,也需要将已爬取的URL地址存放到一个URL列表中,用于去重和判断爬取的进程。

5.将过滤后的链接放到URL队列中。

6.根据搜索算法,从URL队列中确定URL的优先级及下一步要爬取的URL地址。

对聚焦网络爬虫来说,不同的爬取顺序可能导致爬虫的执行效率不同,因此需要依据搜索策略来确定下一步需要爬取哪些URL地址。

7.从下一步要爬取的URL地址中,读取新的URL,然后依据新的URL地址爬取网页,并重复上述爬取过程。满足系统中设置的停止条件时,或无法获取新的URL地址时,停止爬行。

3.增量式网络爬虫

增量式网络爬虫是指对已下载网页采取增量式更新并且只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。

4.深度网络爬虫

网页按存在方式可以分为表层网页和深层网页。

表层网页是指传统搜索引擎可以索引的页面,以超链接可以到达的静态网页为主。

而深层网页则是指那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的、只有用户提交一些关键词才能获得的网页。

深层网络爬虫主要用于针对深层网络,其主要的体系结构包含6个基本功能模块:

爬行控制器、解析器、表单分析器、表单处理器、响应分析器、LVS控制器和两个爬虫内部数据结构(URL列表和LVS表)。其中,LVS(Label Value Set)表示标签和数值集合,用来表示填充表单的数据源。

在深度网络爬虫的爬取过程中,最重要的部分就是表单填写,包含基于领域知识的表单填写和基于网页结构分析的表单填写两种。


参考文献:

天下网TXWEB固原网站搭建公司西安企业网站改版价格青岛做网站资阳市网页设计报价黄冈seo哪家好贵港市网站制作多少钱宿州网站开发黄山网站设计公司武汉市网站改版哪家好横岗网站建设哪家好安庆网站设计报价铁岭市阿里店铺运营哪家专业沈阳网页制作推荐淮安网站改版公司益阳网站搭建公司莆田关键词排名推荐台州市网站建设公司坪山建站推荐沈阳市网站搭建报价吉林企业网站改版公司新余网站设计推荐孝感阿里店铺运营报价吉安市网站优化多少钱菏泽seo推荐丹东seo多少钱茂名网站推广哪家好莆田市seo按天扣费价格吉安市seo公司济南市企业网站设计公司亳州seo排名多少钱香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网TXWEB XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化