网络链接爬取算法优化策略

2019-11-30 15:16赵旭胡璇
电子技术与软件工程 2019年2期
关键词:关键字爬虫层数

文/赵旭 胡璇

面对信息爆炸时代所带来的大数据冲击,如何有效获取与使用网络数据对于各行各业已经非常重要。网络搜索作为政府、企业及个人获取信息的主要途径,我们必须深刻了解并优化其工作方法与效率。生活中常用的各种搜索引擎如百度、Google等,其最底层的工作为网络链接的爬取,即网络爬虫进行数据爬取。

网络爬虫又称网络蜘蛛,是按照一定的规则,自动地抓取万维网信息的程序或者脚本。百度、谷歌等搜索引擎使用网络爬虫将万维网上的信息爬取到本地服务器后再排序推送给用户。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,采取深度优先或者广度优先策略不断的抓取网页URL并将新爬取的URL放入爬取地址队列,直到满足一定的停止条件。

高性能的网络链接爬取算法应当具有很好的可伸缩性、“礼貌”性、可定制及分布式爬取等特性,如何有效的将这些特性融合并实现其价值均衡具有十分重要的意义,特别是对于行业内的信息连接爬取更加重要。

1 研究现状

一个好的网络爬虫算法应当很好的解决目标的描述、网页或数据的分析与过滤、URL搜索策略这三个问题。目前的网络爬虫算法主要有通用网络爬虫算法(General Purpose Web Crawler)、聚焦网络爬虫(Focused Web Crawler)、增量式网络爬虫(Incremental Web Crawler)、深层网络爬虫(Deep Web Crawler),实际的网络爬虫系统通常是几种爬虫技术相结合实现的。

通用网络爬虫爬行对象从一些种子 URL扩充到整个 Web,主要为门户站点搜索引擎和大型 Web 服务提供商采集数据,爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低,同时由于待刷新的页面太多,通常采用并行工作方式。聚焦网络爬虫又称主题网络爬虫,是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫,能够使用较少硬件和网络资源实现少而快的网页爬取,但需要准确定义主题。

增量式网络爬虫是指对已下载网页采取增量式更新,它只爬行新产生的或者已经发生变化网页,具有较好的实时性,但算法的复杂度和实现难度都有很大的增加。深层网络爬虫主要针对那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的 Web 页面,具有更好的针对性,但问题在于很多时候无法获知页面的用户名及密码等隐私问题而受到限制。

2 优化策略

流行的网络爬虫在爬取网页时针对的是万维网,但对于某行业内的网络链接爬取时需要综合考虑各种爬取算法的特点以及实际情况。在进行行业内信息爬取策略的定制时,要充分考虑行业内关键词的设置,不良信息的过滤,“礼貌”爬取防止被屏蔽,避免过度爬取造成信息泛滥等。这里我们对传统主题爬取算法进行一下优化,提高行业内信息爬取效率。

这里我们为每一个源URL设置一个层数属性L,每爬取一次,该属性值折半。具体的,初始URL的层数属性值L=0,通过第0层爬取到的URL的层数属性值设置为1,通过第1层爬取到的URL的层数属性值设置为2,依次类推。对于每一个URL作为源地址进行网络链接爬取时,最多保存爬取到的255/L个URL链接,由此来限制爬取到的URL数量与深度。当实际网页包含的可爬取的链接数量n大于255/L时,根据链接网页的主题与开始设置的关键字比对的相似度决定保存哪一些链接与丢弃哪一些链接。具体的操作流程描述如下。

(1)设定行业关键字;

(2)设置有限的初始URL并添加至URL队列,层数全部设置为0;

(3)记录当前时间t1,检查爬取到的每一个URL的关键字匹配程度后决定是否添加到URL队列并添加层数值;

(4)从URL队列中取一个url进行主题爬取,将符合要求的新链接添加至URL队列,其层数设置为L(url)+1;

(5)记录当前时间t2,判断t2-t1值是否大于一小时,如果大于一小时则暂停爬取操作一个小时,并执行t1=t2,否则继续执行第“(3)”步操作。

在进行行业关键字设置时,除了设置要设置有关的关键字外还要进行敏感词汇的设置,如果网络链接中包含敏感词汇则需要直接丢弃该链接。另外,如果所用设备计算能力有限的话,时间间隔可以设置的长一些,避免浪费时间资源。

3 结论

随着网络时代的井喷式信息爆发,利用有效的网络爬虫算法进行行业内的信息搜索以进一步的分析利用已经必不可免,各大机构与院校均有对网络爬取策略进行相关的研究。现有各类爬虫算法均具有自身的优势与缺点,直接套用无法达到现实目的,如何根据自身实际需要设计自己的网络链接爬取策略并应用至关重要。

上述优化策略中的时间记录与比对,可以有“礼貌”的进行网络链接爬取,避免被门户网站的网管系统屏蔽加入和名单。网络链接层数属性的设置与使用以及将链接内容与行业关键字进行相似度比较,减少了网络链接爬取时的爬取深度,避免因过度爬取造成的信息泛滥。

通过将本文描述的优化了的网络链接爬取策略应用到电力行业的信息系统管理中,收到了很好的效益,效果很好,验证了该策略的可用性及效用性。

猜你喜欢
关键字爬虫层数
利用网络爬虫技术验证房地产灰犀牛之说
填筑层数对土石坝应力变形的影响研究
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
上海发布药品包装物减量指南
基于Python的网络爬虫和反爬虫技术研究
成功避开“关键字”
MoS2薄膜电子性质随层数变化的理论研究
利用爬虫技术的Geo-Gnutel la VANET流量采集
大数据环境下基于python的网络爬虫技术
住在哪一层