Scrapy框架之分布式操作

一、分布式爬虫介绍

  分布式爬虫概念:多台机器上执行同一个爬虫程序,实现网站数据的分布爬取。

1、原生的Scrapy无法实现分布式爬虫的原因?

  • 调度器无法在多台机器间共享:因为多台机器上部署的scrapy会各自拥有各自的调度器,这样就使得多台机器无法分配start_urls列表中的url。
  • 管道无法给多台机器共享:多台机器爬取到的数据无法通过同一个管道对数据进行统一的数据持久出存储。

2、scrapy-redis组件

  scrapy-redis是专门为scrapy框架开发的一套组件。该组件可以解决上述两个问题,让Scrapy实现分布式。
  组件安装:

$ pip3 intall scrapy-redis

二、分布式爬取

1、redis配置和启动

(1)对redis配置文件redis.conf进行配置

  • 注释该行:bind 127.0.0.1,表示可以让其他ip访问redis
  • 将yes该为no:protected-mode no,表示可以让其他ip操作redis
# 不注释时,只允许本机的客户端连接
# bind 127.0.0.1

# yes改为no,关闭redis的保护模式,客户端可以对服务器进行读写操作
protected-mode  no

(2)基于配置文件开启redis服务器

# MAC/Linux
$ pwd
/Users/hqs/redis-5.0.2
$ src/redis-server redis.conf 

# windows
$ redis-server.exe redis-windows.conf

2、项目和爬虫创建

$ scrapy startproject redisPro
$ cd redisPro/
$ scrapy genspider -t crawl qiubai www.qiushibaike.com/pic/

  这里运用CrawlSpider创建爬虫文件爬取全站图片数据。

3、爬虫文件编写

(1)引入scrapy-redis中的模块

  在爬虫文件中要导入RedisCrawlSpider类,然后将爬虫文件修改成基于该类的源文件。

from scrapy_redis.spiders import RedisCrawlSpider

原文地址:https://www.cnblogs.com/xiugeng/p/10086365.html

时间: 2024-08-27 02:02:31

Scrapy框架之分布式操作的相关文章

6 scrapy框架之分布式操作

分布式爬虫 一.redis简单回顾 1.启动redis: mac/linux:   redis-server redis.conf windows: redis-server.exe redis-windows.conf 2.对redis配置文件进行配置: - 注释该行:bind 127.0.0.1,表示可以让其他ip访问redis - 将yes该为no:protected-mode no,表示可以让其他ip操作redis 二.scrapy基于redis的数据持久化操作流程 1.安装scrapy

(六--二)scrapy框架之持久化操作

scrapy框架之持久化操作 基于终端指令的持久化存储 基于管道的持久化存储 1 基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作. 执行输出指定格式进行存储:将爬取到的数据写入不同格式的文件中进行存储 scrapy crawl 爬虫名称 -o xxx.json scrapy crawl 爬虫名称 -o xxx.xml scrapy crawl 爬虫名称 -o xxx.csv 以

scrapy框架之持久化操作

1.基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作. 执行输出指定格式进行存储:将爬取到的数据写入不同格式的文件中进行存储 scrapy crawl 爬虫名称 -o xxx.json scrapy crawl 爬虫名称 -o xxx.xml scrapy crawl 爬虫名称 -o xxx.csv 2.基于管道的持久化存储 scrapy框架中已经为我们专门集成好了高效.便捷的持

Scrapy框架之基于RedisSpider实现的分布式爬虫

需求:爬取的是基于文字的网易新闻数据(国内.国际.军事.航空). 基于Scrapy框架代码实现数据爬取后,再将当前项目修改为基于RedisSpider的分布式爬虫形式. 一.基于Scrapy框架数据爬取实现 1.项目和爬虫文件创建 $ scrapy startproject wangyiPro $ cd wangyiPro/ $ scrapy genspider wangyi news.163.com # 基于scrapy.Spider创建爬虫文件 2.爬虫文件编写--解析新闻首页获取四个板块的

爬虫5 scrapy框架2 全站爬取cnblogs, scarpy请求传参, 提高爬取效率, 下载中间件, 集成selenium, fake-useragent, 去重源码分析, 布隆过滤器, 分布式爬虫, java等语言概念补充, bilibili爬视频参考

1 全站爬取cnblogs # 1 scrapy startproject cnblogs_crawl # 2 scrapy genspider cnblogs www.cnblogs.com 示例: # cnblogs_crawl/cnblogs_crawl/spiders/cnblogs.py import scrapy from cnblogs_crawl.items import CnblogsCrawlItem from scrapy.http import Request class

【Scrapy框架基于scrapy-redis实现分布式爬虫】 򓮘

原文: http://blog.gqylpy.com/gqy/370 "Scrapy框架无法自己实现分布式,原因有二 多台机器上部署的Scrapy各自拥有各自的调度器,这样就使得多台机器无法分配 start_urls 列表中的url,即多台机器无法共享同一个调度器. 多台机器爬取到的数据无法通过同一个管道进行统一的持久化存储,即多台机器无法共享同一个管道. ___ 基于 scrapy-redis 组件的分布式爬虫 安装 :pip install scrapy-redis scrapy-redis

Scrapy框架初级篇

1.概念:scrapy.框架. Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍.所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板.对于框架的学习,重点是要学习其框架的特性.各个功能的用法即可.2.安装:Linux: pip3 install scrapy Windows: a. pip3 install wheel b. 下载twisted http://www.lfd.uci.edu/~go

爬虫系列之Scrapy框架

一 scrapy框架简介 1 介绍 (1) 什么是Scrapy? Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍.所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板.对于框架的学习,重点是要学习其框架的特性.各个功能的用法即可. Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scra

Scrapy框架基础应用和持久化存储

一.Scrapy框架的基础应用 1.Scrapy的概念 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍.所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板. 2.安装 windows: a. pip3 install wheel b. 下载twisted http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted c. 进入下载目录,执行 pip3 in