● 摘要
互联网上的Web数据一直以来都是数据分析与挖掘研究的重要资源。近年来随着Web 2.0和社交网络的兴起,互联网上由用户产生的数据呈现爆炸式增长,这些数据在很大程度上反映了当代文化思潮,折射出舆情与民意。从互联网上方便、高效地获取优质数据,是各类Web数据分析和网络舆情研究的基础,而网络爬虫则是解决这一基础问题的基础性工具。
但Web 2.0的发展给网络爬虫带来了新的难题。在Web 2.0中,JavaScript等脚本语言被广泛使用,大量Web页面内容通过脚本动态加载,这使得依靠HTTP请求URL获取Web页面数据的传统爬虫失去作用。特别是新浪微博这样的社交网站,其内容几乎全部由脚本动态生成,使得传统爬虫寸步难行。因此,研发一个能支持Web 2.0的网络爬虫是一个很有意义的课题。
本文在实验室需要新浪微博数据的背景下,以新浪微博为蓝本,从2012年7月至今进行了Web 2.0通用爬虫的研究与开发,完成有效逻辑代码超过9万行。本文的主要研究内容如下:
(1) 在多种浏览器上用统一架构全面实现了Web 2.0网页自动化。本文开发出一种全新的具有严格语法定义的Web 2.0网页自动化语言WebX。一方面,WebX脚本支持在网页上有序、有逻辑地模拟包括点击、输入、选择、悬浮、滚动、翻页等在内的操作,使爬虫能够访问页面上各种动态加载的内容;另一方面,WebX脚本具有良好的数据预处理能力,能将数据绑定到数据库字段,使Web页面数据能直接转化为数据分析所需的数据。
(2) 实现了完整爬虫流程及链接库、数据库、关键字库管理,支持时间序列构建与删除数据的识别。在链接库和关键字库上实现了灵活的存储、去重和调度机制。
(3) 实现了基于云服务的分布式爬虫,突破爬虫部署限制,使其可在任何网络中运行。
(4) 实现了基于关键字的深度搜索,可以在关键字库中轻松配置、组合关键字检索,支持搜索引擎的高级选项,能利用时间信息自动遍历所有搜索结果。
目前,新浪微博爬虫已经初步建设起来,本文研发的爬虫也逐渐发展成为一个功能齐全、架构统一的通用数据收集平台,希望该爬虫将在更多的项目中发挥出重要作用。
相关内容
相关标签