百度能抓取ajax,分布式爬虫任务调度与AJAX页面抓取研究

本文针对面向中小规模系统的分布式爬虫面临的挑战,提出了一种基于一致性哈希的负载均衡算法,解决了单机爬虫速度慢和分布式爬虫实现复杂的问题。此外,为了解决Ajax页面抓取不完整的问题,文中采用状态流图建模,并设计了基于网页主体内容变化的重复状态检测算法,减少了事件触发次数,提升了Ajax页面抓取效率。最终,实现了支持Ajax页面抓取的分布式爬虫系统,并在实际项目中验证了其有效性。
摘要由CSDN通过智能技术生成

摘要:

随着互联网的迅速发展,数据呈现爆炸性增长,同时人们对数据的采集需求也与日俱增。网络爬虫作为数据获取的有效手段被广泛应用于各类系统中,诸如搜索引擎、舆情监控系统等。然而,面向中小规模系统的网络爬虫面临着两大难题:其一,单机爬虫程序抓取速度慢,已有的开源分布式爬虫框架实现复杂,灵活性不强;其二,虽然Ajax技术以异步加载的方式与服务器交换必要的数据能够提高用户界面响应速度,带来良好的用户体验,但是传统的网页抓取方式无法完整的获取应用了这项技术的页面所包含的信息。这些缺失的信息通常具有重要的研究价值。在面向中小规模系统的分布式爬虫中,任务调度算法的优劣将直接影响系统的抓取效率。因此,本文重点对分布式爬虫的任务调度策略和Ajax页面抓取算法进行了研究。在分布式爬虫的任务调度方面,本文重点研究了主从式架构下的任务调度算法。为了保证各个爬行节点的负载均衡以及系统的可扩展性,本文提出了一种基于一致性哈希的均分负载空间算法。该算法采用了不同于机器节点复制的虚拟节点添加方法,以解决在机器数量较少的情况下系统负载不均衡问题。中心节点在把握系统整体运行状态的基础上采用该算法进行任务调度,并在爬行节点发生变化后进行相应的任务调整。通过实验比较,验证了该算法在负载均衡效率方面获得了提高。在Ajax页面抓取方面,由于单个Ajax页面中包含了许多状态,本文首先采用了经典的状态流图对Ajax页面进行建模,然后提出了基于网页主体内容变化的重复状态检测算法,并利用该算法进行有效元素的XPath特征训练,最后将训练后的结果应用到Ajax页面抓取中。通过实验比较,验证了该方法在保证获取所有数据的情况下能够进一步地减少事件触发总数,缩短页面抓取所消耗的时间,提高了Ajax页面抓取效率。最后,本文提出了支持Ajax页面抓取的分布式爬虫系统总体设计方案,并详细介绍了中心节点和爬行节点各模块的实现细节。通过将分布式爬虫系统成功的应用到网络舆情监控项目中,验证了本文所提出技术的有效性。

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值