两种方式可以实现,一种方式是利用 scrapy 自带的状态收集器,另一种,搞个单例实现全局的状态控制,这是与scrapy无关的。

scrapy 状态收集不多介绍了,放几篇文章在这里。

第一篇是官方的介绍文档:Stats Collection​docs.scrapy.org

第二篇是 stackoverflow 的一个问题,介绍怎么在 spider 使用 stats collector。How to collect stats from within scrapy spider callback?​stackoverflow.com

说说第二种方式,如何实现全局变量效果。假设要保存一个全局变量 hostname。

实现代码:

class Environment:

_env = None

def __init__(self):

self.hostname = None

@classmethod

def get_instance(cls):

"""

返回单例 Environment 对象

"""

if Environment._env is None:

cls._env == cls()

return cls._env

def set_hostname(self, name):

self.hostname = hostname

def get_hostname(self):

return self.hostname

主要的点就在 get_instance 方法中,通过检查类变量 _env 保证全局只有一个 Environment 的对象。接下来只要通过 Environment.get_instance() 获得这个单例对象。

使用代码

Environment.get_instance().set_hostname("hostname")

获取代码

Environment.get_instance().get_hostname()

有点要注意,如果这些变量和具体的请求有关,建议不要用它,通过 meta 传递吧。如果真的要用,一定要注意下数据的关联关系,以防止数据错乱。

这是基本的思路,当然你也在可以此基础上实现更复杂的功能。

scrapy的name变量_scrapy 如何设置全局变量?相关推荐

  1. postman使用———(一)登录获取token设置全局变量/环境变量

    一.登录获取token 可以通过接口文档或抓包工具获取登陆的地址和参数,先登录,查看返回的结果.如图我需要用的参数是token和userid #二.设置全局变量 使用json提取器提取需要的字段并设置 ...

  2. C语言函数怎么像python那样返回多个值?(三种方法:1、设置全局变量 2、传递指针 3、使用结构体返回不同类型的数据)

    引用文章:c语言函数可不可以返回多个值 文章目录 方法一:设置全局变量 例如:利用一个函数求出正方形的周长和面积. 方法二:使用数组名或指针作为函数的形参 实例2:编写函数求一维整形数组的最大值与最小 ...

  3. 【原】postman常用设置全局变量的js片段

    postman知识总结: API自动化利器:http://www.bayescafe.com/tools/use-postman-to-test-api-automatically.html 1.获取 ...

  4. response对象设置返回状态_postman 设置全局变量

    postman大家都知道是一个测试接口的工具,也是目前比较流行的一种测试工具,但是postman只是用来将API地址和参数填入send一下就完了吗?其实不是,关于postman其实有很多玩法,对于测试 ...

  5. linux怎么查看系统环境变量路径,Linux系统中的环境变量该如何设置与查看

    今天小编要跟大家分享的文章是关于Linux系统中的环境变量该如何设置与查看.大家都知道,在 Linux 系统中,有环境变量和 Shell 变量这两种变量. 环境变量是在程序及其子程序中全局可用的,常常 ...

  6. mysql查看指定全局变量_【全局变量】mysql查看全局变量以及设置全局变量的值...

    1.查看mysql的所有全局变量的值 SHOW GLOBAL VARIABLES 或者 SHOW VARIABLES mysql有很多全局变量,包括系统的一些基本信息,以及mysql的一些基本配置都可 ...

  7. python全局变量在哪创建_python设置全局变量

    python中怎么定义全局变量 复制代码 count = 0 def Fuc(count): print count count += 1 for i in range(0, 10): Fuc(cou ...

  8. php全局变量更改,PHP设置全局变量的方法

    PHP如何设置全局变量 1.使用PHP语法结构"global"声明全局变量,注意"global"定义全局变量的时候,不能一起赋值,必须先声明在赋值: 示例代码: ...

  9. php怎么设置页间全局变量,PHP怎么设置全局变量?

    PHP怎么设置全局变量? 发布时间:2020-05-16 00:09:41 来源:亿速云 阅读:150 作者:Leah PHP怎么设置全局变量?这个问题可能是我们日常工作经常见到的.通过这个问题,希望 ...

  10. PHP:isset()-检测变量是否被设置

    isset()-检测变量是否被设置 bool isset(mixed $var [, mixed $...]),检查变量是否被设置,并且不是NULL.var,要检测的变量,...其他变量,允许有多个变 ...

最新文章

  1. 李飞飞力赞论文:描述视频密集事件新模型 !(附论文)
  2. 如何掌握平面设计中的减法思维
  3. 笔记整理-信息系统开发基础-面向对象分析与设计-面向对象设计的基本任务
  4. QT的QLatin1String类的使用
  5. anaconda 安装 pytorch
  6. 米饭凉一凉再吃会更加地健康
  7. 利用WCF与Android实现图片上传并传参
  8. HTML 颜色名:及16进制颜色值:建议收藏!!!
  9. 小球放入盒中的方法总结(排列组合)
  10. zabbix 2.2.2在centos 6.3 x86_64上的安装
  11. LoRa vs LTE-M vs Sigfox
  12. QoS(Quality of Service)服务质量【转自微信公众号开源Linux】
  13. 技术解析:一文看懂 Anolis OS 国密生态|龙蜥专场
  14. 1959-打印镂空字符三角形
  15. 量子计算数学基础,pauli 矩阵
  16. 连接手表_小米手表体验报告(上)
  17. 什么是线程同步和线程异步?
  18. Unity3D:2D/3D 项目
  19. Patroni 使用 raft 作为 DCS
  20. 力扣-374题 猜数字大小(C++)- 二分

热门文章

  1. 知道域名差服务器系统,对DNS域名系统的抓包分析
  2. java前端导入excel_Java之导入Excel Vue框架前端篇
  3. 【数字基带信号】基于matlab数字双相码仿真【含Matlab源码 989期】
  4. pd4ml_您应该在本周(7月4日)阅读有趣的AI / ML文章
  5. 女人在聊天中说给你一个拥抱_不要提高技能; 拥抱一个机器人
  6. Hadoop完全分布安装详细过程--------****--------(ubuntu版本)
  7. 文本框样式 html,HTML文本框样式大全
  8. Google docs/slides的下载
  9. mysql innodb数据库引擎_mysql的innodb数据库引擎详解
  10. Vivado的FPGA设计流程