python爬虫框架之Scrapy分布式的使用
分布式使用
首先必须安装scrapy_redis组件
[code]pip install scrapy_redis
1、scrapy和scrapy_redis的区别
scrapy是一个通用的爬虫框架,不支持分布式
scrapy_redis就是为实现scrapy的分布式而诞生的,它里面提功了redis的组件,通过这些redis组件,就可以实现分布式
2、官网案例
http://github.com/rmax/scrapy-redis
三个样本
dmoz.py 传统的CrawlSpider,目的就是把数据保存在redis,运行方式 指令:scrapy crawl dmoz
myspider_redis.py 继承自RedisCrawlSpider,start_url被redis_key给取代了,其他地方不变
分布式爬虫开发的步骤:
把原来普通的部署在分布式的系统上运行,就构成了分布式爬虫
1、环境部署
scrapy: 爬虫运行的基础 (如果服务端不参与分布式的爬取可以不装)
scrapy_redis :组件(也可以认为是scrapy和redis交互的中间件),用于把scrapy爬虫和redis数据库联系起来
redis服务器:用于存储分布式爬虫爬取到的数据,一般情况下我们将redis服务器部署在Linux系统上,Windows上也可安装(但是这个服务不能用于生产环境);无论是在Linux上还是在Windows上,都必须配置其能够远程访问
2、测试redis服务器是否联通
如果ping了不PONG
1)服务器没有配置远程连接
2)服务器崩溃
3)服务器出现冲突 config set stop-writes-on-bgsave-error no
4)其他意外情况:http://www.baidu.com
3、在普通的scrapy爬虫框架下去爬取,保证爬虫爬取的数据没有错误再去分布式系统上部署
测试数据格式是否正确
先测:json 目的主要是看代码是否有误 【比如:用xpath的时候路径写错等】
再测redis 目的主要是看一下有木有系统级的错误 【如:redis服务器崩溃】
4、部署分布式
服务器端(master端):
可以用某一台主机作为redis服务器的运行方(即服务端),也称为master
客户端(slaver端):
1)把普通爬虫修改成分布式,去掉start_urls(不让slaver随意的执行),替换成redis_key(为了让master能够控制slaver的爬去)
2)修改自己配置文件,即在配置文件中加上scrapy_redis的组件
5、爬取
slaver端:首先要运行起来,等待master发出起始地址再开始
master端:在适当的时候想redis服务器中放入一个起始地址的列表
- 基于Python使用scrapy-redis框架实现分布式爬虫 注
- [Python]使用Scrapy爬虫框架简单爬取图片并保存本地
- Python之Scrapy爬虫框架安装及简单使用
- python爬虫(16)使用scrapy框架爬取顶点小说网
- Python爬虫 --- 2.3 Scrapy 框架的简单使用
- 基于Python+scrapy+redis的分布式爬虫实现框架
- Python之Scrapy爬虫框架安装及使用详解
- [Python爬虫]使用Scrapy框架爬取图虫图片
- 【实战\聚焦Python分布式爬虫必学框架Scrapy 打造搜索引擎项目笔记】第1章 课程介绍
- 【实战\聚焦Python分布式爬虫必学框架Scrapy 打造搜索引擎项目笔记】第3章 爬虫基础知识回顾
- [爬虫入门]Python中使用scrapy框架实现图片爬取
- [Python爬虫]使用Scrapy框架爬取糗事百科
- 搜索引擎–Python下开源爬虫(spider)框架scrapy的使用
- 零基础写python爬虫之使用Scrapy框架编写爬虫
- Python爬虫框架Scrapy安装使用步骤
- 零基础写python爬虫之使用Scrapy框架编写爬虫
- linux下在服务器上配置scrapy框架的python爬虫,使用mysql数据库保存
- 【实战\聚焦Python分布式爬虫必学框架Scrapy 打造搜索引擎项目笔记】第4章 scrapy爬取知名技术文章网站(2)
- 【python爬虫03】使用Scrapy框架模拟登录知乎
- 【实战\聚焦Python分布式爬虫必学框架Scrapy 打造搜索引擎项目笔记】第4章 scrapy爬取知名技术文章网站(1)