scrapy的name变量_scrapy 如何设置全局变量?
两种方式可以实现,一种方式是利用 scrapy 自带的状态收集器,另一种,搞个单例实现全局的状态控制,这是与scrapy无关的。
scrapy 状态收集不多介绍了,放几篇文章在这里。
第一篇是官方的介绍文档:Stats Collectiondocs.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 如何设置全局变量?相关推荐
- postman使用———(一)登录获取token设置全局变量/环境变量
一.登录获取token 可以通过接口文档或抓包工具获取登陆的地址和参数,先登录,查看返回的结果.如图我需要用的参数是token和userid #二.设置全局变量 使用json提取器提取需要的字段并设置 ...
- C语言函数怎么像python那样返回多个值?(三种方法:1、设置全局变量 2、传递指针 3、使用结构体返回不同类型的数据)
引用文章:c语言函数可不可以返回多个值 文章目录 方法一:设置全局变量 例如:利用一个函数求出正方形的周长和面积. 方法二:使用数组名或指针作为函数的形参 实例2:编写函数求一维整形数组的最大值与最小 ...
- 【原】postman常用设置全局变量的js片段
postman知识总结: API自动化利器:http://www.bayescafe.com/tools/use-postman-to-test-api-automatically.html 1.获取 ...
- response对象设置返回状态_postman 设置全局变量
postman大家都知道是一个测试接口的工具,也是目前比较流行的一种测试工具,但是postman只是用来将API地址和参数填入send一下就完了吗?其实不是,关于postman其实有很多玩法,对于测试 ...
- linux怎么查看系统环境变量路径,Linux系统中的环境变量该如何设置与查看
今天小编要跟大家分享的文章是关于Linux系统中的环境变量该如何设置与查看.大家都知道,在 Linux 系统中,有环境变量和 Shell 变量这两种变量. 环境变量是在程序及其子程序中全局可用的,常常 ...
- mysql查看指定全局变量_【全局变量】mysql查看全局变量以及设置全局变量的值...
1.查看mysql的所有全局变量的值 SHOW GLOBAL VARIABLES 或者 SHOW VARIABLES mysql有很多全局变量,包括系统的一些基本信息,以及mysql的一些基本配置都可 ...
- python全局变量在哪创建_python设置全局变量
python中怎么定义全局变量 复制代码 count = 0 def Fuc(count): print count count += 1 for i in range(0, 10): Fuc(cou ...
- php全局变量更改,PHP设置全局变量的方法
PHP如何设置全局变量 1.使用PHP语法结构"global"声明全局变量,注意"global"定义全局变量的时候,不能一起赋值,必须先声明在赋值: 示例代码: ...
- php怎么设置页间全局变量,PHP怎么设置全局变量?
PHP怎么设置全局变量? 发布时间:2020-05-16 00:09:41 来源:亿速云 阅读:150 作者:Leah PHP怎么设置全局变量?这个问题可能是我们日常工作经常见到的.通过这个问题,希望 ...
- PHP:isset()-检测变量是否被设置
isset()-检测变量是否被设置 bool isset(mixed $var [, mixed $...]),检查变量是否被设置,并且不是NULL.var,要检测的变量,...其他变量,允许有多个变 ...
最新文章
- 李飞飞力赞论文:描述视频密集事件新模型 !(附论文)
- 如何掌握平面设计中的减法思维
- 笔记整理-信息系统开发基础-面向对象分析与设计-面向对象设计的基本任务
- QT的QLatin1String类的使用
- anaconda 安装 pytorch
- 米饭凉一凉再吃会更加地健康
- 利用WCF与Android实现图片上传并传参
- HTML 颜色名:及16进制颜色值:建议收藏!!!
- 小球放入盒中的方法总结(排列组合)
- zabbix 2.2.2在centos 6.3 x86_64上的安装
- LoRa vs LTE-M vs Sigfox
- QoS(Quality of Service)服务质量【转自微信公众号开源Linux】
- 技术解析:一文看懂 Anolis OS 国密生态|龙蜥专场
- 1959-打印镂空字符三角形
- 量子计算数学基础,pauli 矩阵
- 连接手表_小米手表体验报告(上)
- 什么是线程同步和线程异步?
- Unity3D:2D/3D 项目
- Patroni 使用 raft 作为 DCS
- 力扣-374题 猜数字大小(C++)- 二分
热门文章
- 知道域名差服务器系统,对DNS域名系统的抓包分析
- java前端导入excel_Java之导入Excel Vue框架前端篇
- 【数字基带信号】基于matlab数字双相码仿真【含Matlab源码 989期】
- pd4ml_您应该在本周(7月4日)阅读有趣的AI / ML文章
- 女人在聊天中说给你一个拥抱_不要提高技能; 拥抱一个机器人
- Hadoop完全分布安装详细过程--------****--------(ubuntu版本)
- 文本框样式 html,HTML文本框样式大全
- Google docs/slides的下载
- mysql innodb数据库引擎_mysql的innodb数据库引擎详解
- Vivado的FPGA设计流程