论文部分内容阅读
近几年来,移动互联网的飞速发展对人们的生活方式产生了极大的影响。微信作为一个新兴的移动社交平台,已累计有超过6亿的注册用户。而微信公众平台依托于微信的海量用户也迅速流行起来,目前已有注册公众号账号超过800万,累计发布了超过2亿篇文章,对微信公众平台所发布的海量信息资源进行深入研究具有重大意义。本文基于Scrapy框架设计并实现了针对微信公众平台的分布式爬虫系统,实现对微信公众平台上公众号信息和文章信息的爬取,将爬取到的数据存储至单机My SQL数据库和Fast DFS分布式文件系统中。此后,概要说明了基于爬取到数据的一种应用场景,可为公众号用户提供快速建站的数据服务。首先,对开源网络爬虫框架Scrapy的整体架构、各个组件模块和内部运行机制进行深入研究。针对它目前仅支持单机爬取的不足,对其进行扩展,基于Redis数据库的有序集合重新实现了调度器模块,使其可以支持多爬虫节点的主从式分布式爬取。其次,基于改进后的Scrapy框架,通过分析微信公众平台的网页组成结构及特性,确定了爬虫程序的爬取流程及策略,进而定制开发了系统的爬虫模块;确定将爬取到的体积较小的字符串数据存入My SQL数据库、将体积较大的文件数据存入Fast DFS分布式文件系统的存储原则,进而定制开发了系统的流水线模块;通过设计一个“公众号最近爬取时间记录队列”,实现对公众号的增量式爬取。再次,基于以上的设计,完成具体程序代码的编写及测试,对系统进行部署运行。运行结果表明,系统中多个爬虫节点能够协作完成爬取任务,且各节点间基本实现负载均衡,本系统基本达到了预期的设计目标。此后,概要地说明基于爬取到数据的一种应用场景。通过设计服务端,为公众号用户快速搭建公众号网站提供数据服务。最后,对目前已完成的工作进行了总结,介绍了该系统的尚可改进之处,可作为后续进一步深入研究的着入点。