APP下载

分布式智能网络爬虫系统设计

2020-04-23吴云

电子技术与软件工程 2020年8期
关键词:爬虫网页页面

吴云

(怀化职业技术学院 湖南省怀化市 418000)

随着互联网技术的发展,Internet 和Web 成为信息数据和主要媒介,如何从海量的数据中高效率精准定位到目标资源信息成为当前研究的互联网核心技术之一,网络爬虫技术应运而生,但在不同的行业、技术背景下信息检索的技术标准有所不同,加之目前部分是市场上的网络爬虫技术仍处于技术框架构建阶段,对于网络数据的整合应用还有所不足,数据整合力度较低,无法实现量化数据的整合。因此,本文基于此背景下通过研究分析分布式智能网络爬虫系统设计,以希对网络爬虫的研究与改进是具有实际可鉴价值。

1 相关理论与技术

1.1 网络爬虫

1.1.1 爬虫基本原理及结构

网络爬虫是在HTTP 协议基础上衍生的计算机程序,如万维网每个网页都会有对应的URL 标识,各个网页之间借助URL 互连在一起,形成巨大的网络体系。网络爬虫通过交织URL 路径,一句规定的协议要义,借助HTTP 来实现数据的整合应用,如网页数据的获取、URL 和数据的整合应用等。

1.1.2 礼貌采集

网络爬虫借助HTTP 来实现数据的整合应用,如网页数据的获取、URL 和数据的整合应用等。这样会不同程度造成爬虫会对不同对象目标进行获取,最终会导致各个终端应用界面大量被访问,此时网络爬虫通过调控各个页面数据来实现对页面的分布式管理,其中涉及有数据库层面、文件管理系统方面以及各个接口技术等信息数据。

网络爬虫主要对象是通过HTTP 来对目标对象进行实时访问,在此过程中爬虫数据需要对多个数据点进行实时访问,此过程必然会占用大量的服务器,大量的时间资源被消耗,网站的服务能力也随之被影响,。所以,网络爬虫采集的效率在实时过程中需要考虑网站自身的服务功耗,随之进行礼貌采集。

1.1.3 网络爬虫分类

爬虫的的功能就是通过采集网上数据,基于采集数据方式、目标的不同,可将网络爬虫可分为通用网络爬虫、聚焦网络爬虫、深层网络爬虫。

2 布式智能网络爬虫系统设计

2.1 设计基本思路

考虑当前网络信息数据的时效性和数据量的倍增,单纯的单片机爬虫系统难以实现对量化数据的检索和收集。因此本文基于不同机器分布式管理模块下来对网站进行批量化采集。

为实现系统的智能化功能,本爬虫系统从两个方面来体现系统的智能化特点。

(1)适用于量化数据较小,页面缓存数据较低的对象需要按照对应的算法,实现对站点网页DOM 模型的定义并自动匹配种子URL,采集对应的数据信息,实现对种子页面的优化匹配。

(2)对爬虫服务节点数据的获取,按照对应的法则模块,实现对爬虫节点数据的智能化收取,通过对各爬虫服务节点的日志及系统测试,结合相应的异常处理规则,实现对整个爬虫服务节点的智能管理。其中主要包括对系统中的某些异常节点的服务,进行任务转移并根据预定义规则进行自动恢复处理,若恢复失败将最终提出人工维护处理请求。

2.2 系统整体架构

网络爬虫中常用的拓扑结构主要包括以下功能模块。这些部分根据功能属性构架出系统整理框架。

2.3 系统主要功能模块

2.3.1 爬虫管理模块

2.3.2 种子调度模块

种子调度模块获取方式是从数据库中读取所需要的种子,并按照协议要义并入调度栏中,经种子系统对其进行数据预分析后,形成新的页面数据URL 并进行动态协调管理,完成对种数据的优化配置。

2.3.3 种子分析模块

种子数据分析主要的任务是对种子进行模块化定义和处理,随后以相同模式协议进行并入种子库中。具体涉及应用层面主要包含以下2 个步骤:

(1)借助优化算法对种子页面进行抽象化模型构建;

(2)对模型进行URL 抽取,并去除和协议不同的数值标签,形成新的采集任务。

2.3.4 网页下载模块

根据URL 及导航脚本信息并获取网页数据的元数据和种子文件,随后处理后对种子数进行礼貌采集、调度和分析。同一个服务终端只可以被对应的采集系统进行屏蔽,根据任务队列的量化数据的大小实现对线程的多模块化控制和处理。

网页下载服务通过URL 进行页面下载,这时就会对链接中的域名进行解析。DNS 缓存模块就是为系统中的所有下载服务节点提供DNS 解析及缓存管理,尽可能减少DNS 解析的网络开销加快爬虫系统的下载速度。

2.3.6 URL 去重模块

为防止爬虫对网络站点页面的多次采集,达到新增页面的多样化采集。

2.3.7 页面调度模块

页面调度模块需要从不同的节点数据上对页面进行分批次采集,并将采集的数据点依次输送至对应的页面抽取模块上,达到对页面的动态采集。

2.3.8 系统监控模块

系统监控模块需要对服务节点进行功能化监控,并根据对应的协议要义进行节点数据的的获取和修复,如修复难度大,需要发送至对应的人工维护对象,进行人工化处理。

图1:压力测试的页面截图

3 系统测试

3.1 功能测试

从数据的验证、数据分析,业务逻辑分析方面都需要对功能数据进行分析,具体到爬虫系统分布式管理,系统功能测试主要侧重以下三个部分,如功能的便携性、表单数据提交以及数据关联等;

(1)功能的便携性测试:功能测试并不能依托于单个功能的大型,其中包括各个操作模块是否能进行单个操作,进而完善系统的简单化,达到便携性目的。

讲武堂的师资力量很受学者关注,以辛亥革命前的三期为例,已知担任教官的40人中,日本各学堂毕业者有28人,其余的人,有4位出自国内最高学府北京京师大学堂,2位出自越南法国人办的巴维学校,还有6人情况不明。其中,担任军事教学的23人中,有21位毕业于日本陆军士官学校,另外2人毕业于日本陆军测量学校。军事课程,基本上被从日本归国的留学者包揽。

(2)表单数据提交:系统数据的传递过程都是通过表单来完成并输送至数据库中;按照对应数据的结果会提交给用户;其中主要包括数据的提交、验证、分析以及各个子功能模块间的协作等进行测试验证。

3.2 压力测试

压力测试主要目的是通过模拟用户的在线人数量来检测系统对量化数据冲击的承受力;随着在线人数的急剧增大,页面响应时间也会飞速增长。TTP 响应时间与点击次数以及吞吐量都可依次表现压力测试性能优良。

为使系统稳定、可靠进行,在系统被开发,都需要对系统进行压力测试,主要利用大量的重复性操作测试系统能否稳定的应对,是否会出现系统崩溃、卡顿这些非常不好的现象。

图1 为响应时间曲线,在并发数为2 万的情况下,平均响应在0.001 秒以下,在12 分钟时结束压力测试,则表明系统的数据缓存量,系统兼容性都非常的优良,测试过程未出现系统崩溃、卡顿现象,完全满足高等院校规模的应用。

3.3 权限管理测试

系统平台目前有2 中不同类型的权限管理测试,可分为横纵向越权操作。横向操作主要测试的目标是和其具有相同属性、权限用户的资源;纵向操作主要测试目标比其具有相同属性、权限较高用户的资源;权限管理测试更多的是进行人工预判,基于测试人员理解测试业务系统的逻辑处理流程,并在此基础上进行如下测试。

3.3.1 横向测试实例

(1)测试用例名称:使用者横向操作测试

(2)测试目标:发现页面中存在的横向越权操作。

(3)测试条件:

对已知的页面数据(网页数据http://www.xxx.com/www),提交参量中如有用户A 以及标志B,A 同级别权限的用户B 测试用机安装了WebScarab 软件)。

执行步骤:运行对应的脚本文件。并进行标签属性定义,打开对应的服务器网站,更改修正代理地址并配置数字属性,用户A登陆到Web 应用,进入网页页面数据提交、修正。

(4)预期结果:服务器返回操作失败或者以userA 的用户身份操作。

横向测试的两个实例在本测试类别中同样使用,仅仅需要对用户身份进行权限测试并根据测试属性方式不同得到不同测试结果。、

3.3.2 纵向测试实例

(1)测试用例名称:基于菜单URL 的测试。

(2)测试目的:比其具有相同属性、权限较高用户的资源

(3)测试条件:Web 正常(管理权限等级不同)

(4)执行步骤:以管理权限等级较高的身份登录Web 网站,进行源文件数据的查询,查找URL 链接,观察普通用户是否能够顺利进入“用户管理”页面,并进行用户管理操作。

(5)预期结果:普通用户未授权难以通过URL 进行访问。

4 结论

随着互联网技术融合发展,如何从海量的数据中高效率精准定位到目标资源信息成为当前研究的互联网核心技术之一;本文通过研究分析分布式智能网络爬虫系统设计;以希达到数据采集策略、数据抽取、数据存储、系统检测等方面高度自动化匹配。本文通过基于相关机器学习的算法进行分析,基于异常处理规则通过对各爬虫服务节点的系统测试实现对整个爬虫节点的智能化管理。以希对网络爬虫的研究与改进是具有实际可鉴价值。

猜你喜欢

爬虫网页页面
利用网络爬虫技术验证房地产灰犀牛之说
刷新生活的页面
基于Python的网络爬虫和反爬虫技术研究
基于CSS的网页导航栏的设计
利用爬虫技术的Geo-Gnutel la VANET流量采集
基于URL和网页类型的网页信息采集研究
大数据环境下基于python的网络爬虫技术
网页制作在英语教学中的应用
10个必知的网页设计术语
网站结构在SEO中的研究与应用