Scrapy 提供了內(nèi)置的 telnet 終端,以供檢查,控制 Scrapy 運(yùn)行的進(jìn)程。 telnet 僅僅是一個(gè)運(yùn)行在 Scrapy 進(jìn)程中的普通 python 終端。因此您可以在其中做任何事。
telnet 終端是一個(gè)自帶的 Scrapy 擴(kuò)展。 該擴(kuò)展默認(rèn)為啟用,不過您也可以關(guān)閉。 關(guān)于擴(kuò)展的更多內(nèi)容請(qǐng)參考Telnet console 擴(kuò)展。
telnet 終端監(jiān)聽設(shè)置中定義的 TELNETCONSOLE_PORT
,默認(rèn)為 6023。 訪問 telnet 請(qǐng)輸入:
telnet localhost 6023
>>>
Windows 及大多數(shù) Linux 發(fā)行版都自帶了所需的 telnet 程序。
telnet 僅僅是一個(gè)運(yùn)行在 Scrapy 進(jìn)程中的普通 python 終端。因此您可以做任何事情,甚至是導(dǎo)入新終端。
telnet 為了方便提供了一些默認(rèn)定義的變量:
快捷名稱 | 描述 |
crawler
|
Scrapy Crawler (scrapy.crawler.Crawler 對(duì)象)
|
engine
|
Crawler.engine屬性 |
spider
|
當(dāng)前激活的爬蟲(spider) |
slot
|
the engine slot |
extensions
|
擴(kuò)展管理器(manager) (Crawler.extensions屬性) |
stats
|
狀態(tài)收集器 (Crawler.stats屬性) |
settings
|
Scrapy設(shè)置(setting)對(duì)象 (Crawler.settings屬性) |
est
|
打印引擎狀態(tài)的報(bào)告 |
prefs
|
針對(duì)內(nèi)存調(diào)試 (參考調(diào)試內(nèi)存溢出) |
p
|
pprint.pprint 函數(shù)的簡寫 |
hpy
|
針對(duì)內(nèi)存調(diào)試 (參考 調(diào)試內(nèi)存溢出) |
下面是使用 telnet 終端的一些例子:
在終端中您可以使用 Scrapy 引擎的 est()方法來快速查看狀態(tài):
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
暫停:
telnet localhost 6023
>>> engine.pause()
>>>
恢復(fù):
telnet localhost 6023
>>> engine.unpause()
>>>
停止:
telnet localhost 6023
>>> engine.stop()
Connection closed by foreign host.
在 telnet 終端開啟前發(fā)送該信號(hào)。您可以掛載(hook up)該信號(hào)來添加,移除或更新 telnet 本地命名空間可用的變量。您可以通過在您的處理函數(shù)(handler)中更新 telnet_vars 字典來實(shí)現(xiàn)該修改。
參數(shù): telnet_vars (dict) – telnet 變量的字典
以下是終端的一些設(shè)定:
Default:[6023, 6073]
telnet 終端使用的端口范圍。如果設(shè)為 None
或 0
, 則動(dòng)態(tài)分配端口。
默認(rèn): '127.0.0.1'
telnet 終端監(jiān)聽的接口(interface)。