苏广彦
中国移动通信集团有限公司广东分公司 510000
摘要:随着5G时代的到来,由于移动终端接入网络的数量不断增加,传统的分析模型对用户行为的分析日益困难,对用户的实际需求并不能准确判断。因此,基于分布式网络爬虫的WAP网关系统,利用爬虫和云计算平台的支持来挖掘WAP网关日志,分析访问的网站,了解用户需求,并在此基础上支持精准营销。
关键词:互联网行为;网络爬虫; Hadoop; WAP
引言:针对Web爬行动物开发中的攻防问题,反复分析了数据删除和爬行速度问题,并基于Scrapy框架,分布式工作原理,防爬行技术和基于Scrapy框架的分布式jigoro网络爬行动物的工作原理和实现方法。网络我们分析了爬行动物技术,Web爬行动物技术等,并使用迭代数据删除算法,redis数据库,monogodb数据库等设计并实现了基于网关的分布式Web爬行动物。 最后,我们总结了如何通过对爬行动物进行比较测试和分析来提高爬行动物的效率。
一、分布式爬虫技术方案
Srapy Reptiles是使用Scrapy爬行动物框架创建的爬行动物程序。 由于每个新闻站点都具有不同的网页结构,因此每个新闻站点都具有相应的Scrapy Reptile Program。 每个新闻站点打开的Scrapy爬行动物的数量由Storm分布式平台控制,并且增加Storm分布式平台上的任务的并行性将增加新闻站点上的爬行动物的数量,反之则增加新闻站点上的爬行动物的数量减少。
1.子搜寻器搜寻任务分配
通过在主机上安装redis数据库来维护统一的任务列表。 网络程序在每次连接到Redis数据库时调用loop方法来生成任务和请求。 接下来,它像普通的爬行动物一样工作。
2、用户登录
由于网站限制了访问者的访问,因此为了获取所需的信息,用户必须登录该程序。原则是获取有效的本地cookie并使用该cookie访问网站。除了使用第三方库进行图像识别的身份验证方法外,用户通常会在浏览器中手动登录,通过网络工具拦截有效的cookie,然后由爬网程序生成的请求将伴随cookie。
由于爬虫的诞生和进化,在移动端的爬虫过程中,也产生了不少的问题,可以解释和分析如下:
1.网站与爬虫之间的攻防:针对爬虫可以不受限制地爬网所有网页的情况,已经建立了机器人协议。但是,由于该协议尚未成为严格的规范,因此它只是常规的技术代码,因此无法真正阻止Web爬虫,因此反爬虫技术应运而生。本文将使用分布式技术来解决此问题。
2.统一资源地址的重复数据删除问题:在爬网过程中,爬网程序经常遇到相同的URL,如果再次爬网,则会造成资源浪费。常见的解决方案是使用MD5和其他哈希将它们存储在集合中。本文将使用布隆过滤算法解决重复数据删除问题。
3.履带效率:当前的爬行器通常遭受爬行效率低的困扰。为了解决这个问题,本文的爬虫使用分布式代理池和其他技术。
4.防攀爬策略设计与实施
为了防止Web爬网程序对数据进行爬网,许多网站已引入某些策略来避免爬网程序进行爬网。但是,在实际应用中,爬虫最终将在爬虫和反爬虫之间赢得比赛。结合本项目的智虎分布式履带,我们制定并定制了该履带采取的一些反抗履带措施,可以分析和描述如下。
(1)设置用户代理。这是网站上常用的防爬虫剂。您可以通过更改Hander的User-Agent值直接达到目标。在此项目中,Fake-Useragent模块用于动态更改用户代理。
(2)设置阴影间隔。许多站点通常会检测每个IP时间的访问次数。如果用户的访问速度太高,则可以阻止IP。为了解决此问题,可以设置搜索器的搜索间隔(例如,最简单的time.sleep(1)),或者可以将搜索器设置为在搜索时间之后添加睡眠机制。关于该方法,通过提供爬行动物的网络间隔可以有效地防止IP阻塞,但是在实际项目中,考虑到需要大规模网络访问的数据,访问网络的效率特别有效,这一点很重要。
5.wap网关的优点
WAP的最大成就是开放性。它第一次为开放和标准化的体系结构以及Internet无线访问定义了一组标准。 WAP基于现有协议标准并且兼容。它使用现有的Internet标准和技术(例如IP,http,XML,SSL,URL和脚本语言)进行扩展。 WAP网关使用http协议与Internet节点进行通信,无线终端用户使用URL访问模式来申请服务。这个开放且统一的技术平台使用户可以使用其移动设备轻松访问和检索统一内容格式的Internet或Internet信息和服务。地图技术对无线网络进行了许多优化。 WAP协议的轻量级设计可以最小化所需的带宽。另一方面,无线网络中的数据传输以二进制格式压缩以节省带宽。 WAP的会话系统可以处理间歇性覆盖,并可以在各种无线传输条件下运行。 WML和WML脚本可以充分利用屏幕的优势,以完全克服Wi-Fi带宽低,延迟长和移动设备处理性能差的局限性。
三、关键技术分析
1.负载平衡和算法实现
负载平衡(Load balancing)是由多个服务器以对称方式组成的一组服务器。每台服务器的状态相同,可以独立提供服务,无需其他服务器的帮助。通过一些负载共享技术,从外部发送的请求将以对称的结构均匀地分布到服务器上,接收请求的服务器将独立地响应客户端的请求。当网络负载较大时,应考虑使用负载平衡技术将负载均匀地分配到多个内部服务器。如果多个服务器同时执行一个任务,它们将形成一个集群(cluster)。负载平衡策略的优点和缺点有两个关键因素
2.网络系统状态检测方法及能力
容量和网络状态的负载均衡算法。据说负载平衡算法有很多种,如旋转平衡、权值旋转平衡、随机平衡、响应速度平衡、最小连接平衡、处理能力平衡等。每种算法都有自己的特点和合适的配置。在WAP网关的开发中,主要采用了两种负载均衡算法:随机均衡和最小连接均衡。
随机平衡是将请求从网络随机分发到多个内部服务器,该算法易于实现。但是,客户端在服务器上请求服务所花费的时间可能会有很大的不同。随着工作时间的增加,如果采用随机均衡算法,将会提高服务器的服务质量,每个服务器的连接过程可能会大不相同,无法实现实际的负载均衡。另一种算法是最小连接平衡算法,该算法具有每个需要加载的服务器的数据记录。记录服务器当前正在处理的连接数。
四、基于分布式网络爬虫的功能模块对网关系统关键数据分析解析
分布式网络爬虫想必也是人人有所耳闻,但是关于分布式网络爬虫更具体的算法外行人了解的就甚少。有人把数据比喻为蕴藏能量的煤矿。煤炭按照性质有焦煤、无烟煤、肥煤、贫煤等分类,而露天煤矿、深山煤矿的挖掘成本又不一样。与此类似,数据并不在“大”,而在于“有用”。价值含量、挖掘成本比数量更为重要。对于很多行业而言,如何利用这些大规模数据是赢得竞争的关键。
而当前分布式网络爬虫算法主要分为分类算法,聚类算法和关联规则三大类,这三类基本上涵盖了目前商业市场对算法的所有需求。而这三类里又包含许多经典算法,可以说只有对这几类经典算法有了研究,我们才能谈得上对数据深度挖掘算法有了一定的认识。
而在WAP网关系统对网关日志数据进行分析解析,则有着以下重要的意义:第一,分布式网络爬虫系统的商业价值。使用者们通过观察数据报表来掌握企业的经营状况,发现企业运营的问题。大数据技术利用各种分析方法和工具在大规模海量数据中建立模型和发现数据间的潜在关系,帮助管理者们发现着眼点。
第二,分布式网络爬虫的个性化技术。每个人生来就是与众不同的,需求也天然是个性化的。以时装产业为例,每个用户穿着打扮的口味、偏好、喜爱的款式是各不相同的,大数据能充分发挥所长,挖掘出用户的个性化需求并加以满足。亚马逊公司(Amazon)通过挖掘用户在线的浏览行为和购买记录,成功挖掘出了用户个性化模型并进行针对性商品推荐,极大促进了商品的购买率。就拿亚马逊来说,目前亚马逊平台上超过30%的购买收入由个性化推荐系统所贡献,是了不起的成就。
第三,由分布式网络爬虫系统集成的预测技术。谁能预知未来?——大数据技术能帮你做到,因为它熟知过去。随着技术的进步,借助时间序列分析技术,通过对趋势、季节变动、循环波动和不规则波动的因素的细致把握,大数据正在赋予我们更强的洞察未来的能力。随着技术的进步,大数据正在赋予我们更强的洞察未来的能力。
本文主要利用 Scrapy 爬虫框架与 Storm 流计算框架,解析出网关网站访问的URL记录,通过爬虫实现了对这些网站上的数据的爬取。主要的工作流程如下:
(1) 结合 Scrapy 爬虫框架和 Storm 流计算框架, 实现分布式爬取。 本文将Scrapy 爬虫进程运行在 Storm 分布式平台上, 使得 Scrapy 爬虫框架支持分布式爬取, 多个 Scrapy 爬虫能够协作爬取同一网站的数据, 提高了网络爬虫的爬取速度。
(2) 以流处理和批处理的方式对 URL 进行处理。 Trident 框架不仅支持对数据的流处理, 而且支持对数据的批处理。 本文利用 Trident 框架的流处理和批处理特性, 每次从 URL 队列中读取一批 URL 到 Storm 分布式平台上进行处理。
(3) 设计了一个基于多布隆过滤器的 URL 去重算法。 布隆过滤器具有插入和查找元素的时间复杂度为常数、 节省存储空间等优点, 但是布隆过滤器具有误识别率。 本文采用多个布隆过滤器设计 URL 去重算法, 降低布隆过滤器的误识别率。
结语:随着5G时代的到来,传统的移动运营分析模型的弊端变得越来越明显。一方面,由于移动终端接入网络的数量不断增加本文使用重复数据删除算法。因此,本文将通过对redis数据库,mongodb数据库等进行分析,设计并实现了基于scrapy框架的分布式Web爬虫。最后,通过对爬虫的比较测试和分析,总结了如何提高爬虫的爬虫效率,避免网站上的反爬虫对策。
参考文献:
[1]王岩.搜索引擎中网络爬虫技术的发展[J] .电信快报,2018(10):20-22.
[2]陈利婷.大数据时代的反爬虫技术[J].电脑与信息技术,2016,24(6):60-61.
[3] 张笑天.分布式爬虫应用中布隆过滤器的研究[ D].沈阳: 沈阳工业大学,2017.21(3):63-69