热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Scrapy内置Telnet终端(TelnetConsole)

Scrapy提供了内置的Telnet终端,以供检查,控制Scrapy运行的进程;Telnet仅仅是一个运行在Scrapy进程中的普通Pyt

Scrapy 提供了内置的 Telnet 终端,以供检查,控制 Scrapy 运行的进程;Telnet 仅仅是一个运行在 Scrapy 进程中的普通 Python 终端;该扩展默认为启用,不过你也可以关闭。

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

telnet localhost 6023

Windows 及大多数 Linux 发行版都自带了所需的 telnet 程序;telnet 为了方便提供了一些默认定义的变量。

Telnet默认定义变量
快捷命令名称描述
crawler    Scrapy Crawler (scrapy.crawler.Crawler 对象)
engine Crawler.engine属性
spider   当前激活的爬虫(spider)
slot the engine slot
extensions扩展管理器(manager) (Crawler.extensions属性)
stats 状态收集器 (Crawler.stats属性)
settingsScrapy设置(setting)对象 (Crawler.settings属性)
est打印引擎状态的报告
prefs 针对内存调试 (参考调试内存溢出)
pprint.pprint 函数的简写
hpy针对内存调试 (参考 调试内存溢出)
Telnetconsole usage examples


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

telnet localhost 6023
>>> est()
Execution engine statustime()-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 终端使用的端口范围。如果设为 None 或 0, 则动态分配端口。

TELNETCONSOLE_HOST
默认: '127.0.0.1'

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


推荐阅读
author-avatar
哈铁鸡西青年志愿者
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有