开发环境:Python + Scrapy框架 + redis数据库
程序采用 python 开发的 Scrapy 框架来开发,使用 Xpath 技术对下载的网页进行提取解析,运用 Redis 数据库做分布式, 设计并实现了针对当当图书网的分布式爬虫程序,scrapy-redis是一个基于redis的scrapy组件,通过它可以快速实现简单分布式爬虫程序,该组件本质上提供了三大功能:
scheduler – 调度器
dupefilter – URL去重规则(被调度器使用)
pipeline – 数据持久化
Scrapy是一个比较好用的Python爬虫框架,你只需要编写几个组件就可以实现网页数据的爬取。但是当我们要爬取的页面非常多的时候,单个主机的处理能力就不能满足我们的需求了(无论是处理速度还是网络请求的并发数),这时候分布式爬虫的优势就显现出来。
而Scrapy-Redis则是一个基于Redis的Scrapy分布式组件。它利用Redis对用于爬取的请求(Requests)进行存储和调度(Schedule),并对爬取产生的项目(items)存储以供后续处理使用。scrapy-redi重写了scrapy一些比较关键的代码,将scrapy变成一个可以在多个主机上同时运行的分布式爬虫。
程序开发工具: PyCharm
照片名称:1scrapy-redis分布式爬虫参数设置
照片名称:2利用Xpath定位提取网页数据
照片名称:3scrapy启动爬虫命令
照片名称:4等待Redis数据库push起始的url地址
照片名称:5向redis数据库push起始的url地址
照片名称:6分布式爬虫开始抓取数据
照片名称:7中断爬虫执行过程