论文部分内容阅读
在这个互联网时代,电子化的产品已经深入到生活的方方面面,各种纸质的图书也同时被各种格式的电子书所取代。只需下载到手机或者其他移动终端里,即可进行阅读。但是在众多的图书之中如何进行选择,如何大规模获取图书资源,一个图书爬虫就显得非常重要。本论文设计和实现分布式在线图书爬虫系统,采用了Scarpy架构,并通过Redis作为URL缓存队列进行分布式扩展,使爬虫的效率大大的提升,对Redis进行高可用配置,提升系统高可用性,并能够完成增量爬取,保证对于图书的更新能够第一时间掌握。通过对图书网站的业务层面的分析和根据使用者的特点,完成需求分析,系统共分为调度器模块,URL爬取模块,流水线模块,监控模块等几个主要模块,作者对这几个模块进行设计,并完成了如下几个模块:(1)调度器模块,包括URL调度,URL去重等功能,主要实现了对URL按照安全哈希算法进行去重和按照URL的优先级进行爬取,并通过Redis实现了爬虫的分布式。(2)URL爬取模块,通过分配给它的URL,下载对应的页面,并对这个页面进行解析,对于提取到的URL,继续发送给URL缓存队列,并把页面里面的图片、文件、图书详细信息等各种要爬取的信息发送给流水线进行下一步处理。(3)流水线模块,对于URL爬取模块传递给它的信息进行规范化,通过不同的流水线进行存储,把图片、文件、图书详细信息这些数据传到不同的存储单元中去。(4)监控模块,对每个爬虫的状态进行监控,监控每个爬虫所爬取的URL数量,爬虫的运行情况,爬虫运行了多长时间,并监控每个爬虫所在设备的状态。通过功能验证表明新的Scrapy爬虫系统满足分布式图书爬虫系统的要求,能够对分布式图书网站进行有效的爬取,现在项目还是在测试阶段,下一阶段会对图书内容和图书的插图等信息进行监控,完成对在线图书网站的监控和甄别。从而给广大读者提供一个更为健康的阅读环境。