爬虫:Scrapy14 - Telnet 终端(Telnet Console)

news/2024/7/19 9:57:16 标签: python, 爬虫

Scrapy 提供了内置的 Telnet 终端,以供检查,控制 Scrapy 运行的进程。Telnet 仅仅是一个运行在 Scrapy 进程中的普通 Python 终端。因此你可以在其中做任何是。

Telnet 终端是一个自带的 Scrapy 扩展。该扩展默认为启用,不过你也可以关闭。

如何访问

Telnet 终端监听设置中定义的 TELNETCONSOLE_PORT,默认为 6023,访问 telnet 请输入:

telnet localhost 6023
>>>

Windows 及大多数 Linux 发行版都自带了所需的 telnet 程序。

telnet 终端中可用的变量

telnet 仅仅是一个运行在 Scrapy 进程中的普通 Python 终端。因此你可以做任何事情,甚至是导入新终端。

telnet 为了方便提供了一些默认定义的变量:

快捷名称描述
crawlerScrapy Crawler (scrapy.crawler.Crawler 对象)
engine Crawler.engine属性
spider 当前激活的爬虫(spider)
slotthe engine slot
extensions 扩展管理器(manager) (Crawler.extensions属性)
stats 状态收集器 (Crawler.stats属性)
settings Scrapy设置(setting)对象 (Crawler.settings属性)
est 打印引擎状态的报告
prefs 针对内存调试 (参考调试内存溢出)
p pprint.pprint 函数的简写
hpy 针对内存调试 (参考 调试内存溢出)     

Telnet console usage examples

查看引擎状态

在终端中你可以使用 Scrapy 引擎的 est() 方法来快速查看状态:

telnet localhost 6023
>>> est()
Execution engine status

time()-engine.start_time                        : 8.62972998619
engine.has_capacity()                           : False
len(engine.downloader.active)                   : 16
engine.scraper.is_idle()                        : False
engine.spider.name                              : followall
engine.spider_is_idle(engine.spider)            : False
engine.slot.closing                             : False
len(engine.slot.inprogress)                     : 16
len(engine.slot.scheduler.dqs or [])            : 0
len(engine.slot.scheduler.mqs)                  : 92
len(engine.scraper.slot.queue)                  : 0
len(engine.scraper.slot.active)                 : 0
engine.scraper.slot.active_size                 : 0
engine.scraper.slot.itemproc_size               : 0
engine.scraper.slot.needs_backout()             : False

暂停,恢复和停止 Scrapy 引擎

#暂停:

telnet localhost 6023
>>> engine.pause()
>>>

#恢复:

telnet localhost 6023
>>> engine.unpause()
>>>

#停止:

telnet localhost 6023
>>> engine.stop()
Connection closed by foreign host.

Telnet 终端信号

scrapy.telnet.update_telnet_vars(telnet_vars)

在 telnet 终端开启前发送该信号。您可以挂载(hook up)该信号来添加,移除或更新 telnet 本地命名空间可用的变量。您可以通过在您的处理函数(handler)中更新 telnet_vars 字典来实现该修改。

参数: telnet_vars (dict) – telnet 变量的字典

Telnet 设定

以下是终端的一些设定:

TELNETCONSOLE_PORT

Default:[6023, 6073]

telnet 终端使用的端口范围。如果设为 None0, 则动态分配端口。

TELNETCONSOLE_HOST

默认: '127.0.0.1'

telnet 终端监听的接口(interface)。

转载于:https://www.cnblogs.com/sufei-duoduo/p/5884048.html


http://www.niftyadmin.cn/n/1420058.html

相关文章

JS操作小数运算,结果莫名其妙出现多位小数问题

Number类型: Number类型是ECMAScript中最常用和最令人关注的类型了;这种类型使用IEEE754格式来表示整数和浮点数值(浮点数值在某些语言中也被成为双精度数值),为支持各种数据类型,ECMA-262定义了不同的数值…

eclipse adt 选择ndk目录时提示“Not a valid NDK directory”

解决方案 在你安装的ndk的主目录下创建一个ndk-build空文件,然后重新打开对话框选择就可以了。转载于:https://www.cnblogs.com/killiancheung/p/5887200.html

Ext.Array 方法

1. Ext.Array.clean(arr); 过滤数组中的空元素  var arr [1,"",2,"",3]; Ext.clean(arr); // [1,2,3] 2. Ext.Array.clone(arr);可以克隆数组,对象,dom节点和日期数据,以避免保持旧的指向  var arr [1,,2,3]; Ext…

CAR

24.编写一个Car类,具有String类型的属性品牌,具有功能drive; 定义其子类Aodi和Benchi,具有属性:价格、型号;具有功能:变速; 定义主类E,在其main方法中分别创建…

Application中的name属性

首先,如果不写的话,默认 name android.app.Application 这个类的作用是为了放一些全局的和一些上下文都要用到的变量和方法。 如果要自己写则是 public class TestApplication extends Application {} ,必须是public,然后继承自a…

全局变量危害

长期占用内存 全局变量生命周期长,程序运行期一直存在,始终占有那块存储区; 难以定位修改 全局变量是公共的,全部函数都可以访问,难以定位全局变量在哪里被修改,加大了调试的难度; 使函数理解 使…

HDU 5875 Function -2016 ICPC 大连赛区网络赛

题目链接 网络赛的水实在太深,这场居然没出线zzz,差了一点点,看到这道题的的时候就剩半个小时了。上面是官方的题意题解,打完了才知道暴力就可以过,暴力我们当时是想出来了的,如果稍稍再优化一下估计就过了…

genmotion 安装 app 报错 This application is't compatible with your mobile phone解决办法

请下载这个文件:http://pan.baidu.com/s/1jIyMNbg(一个zip包) 将这个zip包拖放到genymotion的屏幕中,安装,然后重启就行了 我安装的Samsung Galaxy Note2-4.3-API 18 - 720x1280转载于:https://www.cnblogs.com/zhiyingzhou/p/5898008.html