鍍金池/ 教程/ Python/ Telnet 終端(Telnet Console)
Benchmarking
命令行工具(Command line tools)
下載器中間件(Downloader Middleware)
信號(hào)(Signals)
Telnet 終端(Telnet Console)
初窺 Scrapy
數(shù)據(jù)收集(Stats Collection)
Scrapyd
通用爬蟲(chóng)(Broad Crawls)
Item Loaders
試驗(yàn)階段特性
Scrapy 入門教程
自動(dòng)限速(AutoThrottle)擴(kuò)展
Settings
Scrapy 終端(Scrapy shell)
下載項(xiàng)目圖片
DjangoItem
調(diào)試(Debugging)Spiders
選擇器(Selectors)
Feed exports
Spiders Contracts
借助 Firefox 來(lái)爬取
Logging
Spiders
Ubuntu 軟件包
實(shí)踐經(jīng)驗(yàn)(Common Practices)
安裝指南
Item Exporters
擴(kuò)展(Extensions)
Items
Spider 中間件(Middleware)
異常(Exceptions)
例子
發(fā)送 email
架構(gòu)概覽
常見(jiàn)問(wèn)題(FAQ)
Jobs:暫停,恢復(fù)爬蟲(chóng)
核心 API
使用 Firebug 進(jìn)行爬取
Item Pipeline
Link Extractors
Web Service
調(diào)試內(nèi)存溢出

Telnet 終端(Telnet Console)

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ò)您也可以關(guān)閉。 關(guān)于擴(kuò)展的更多內(nèi)容請(qǐng)參考Telnet console 擴(kuò)展。

如何訪問(wèn) telnet 終端

telnet 終端監(jiān)聽(tīng)設(shè)置中定義的 TELNETCONSOLE_PORT,默認(rèn)為 6023。 訪問(wèn) telnet 請(qǐng)輸入:

telnet localhost 6023
>>>

Windows 及大多數(shù) Linux 發(fā)行版都自帶了所需的 telnet 程序。

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)前激活的爬蟲(chó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ù)的簡(jiǎn)寫(xiě)
hpy 針對(duì)內(nèi)存調(diào)試 (參考 調(diào)試內(nèi)存溢出)

Telnet console usage examples

下面是使用 telnet 終端的一些例子:

查看引擎狀態(tài)

在終端中您可以使用 Scrapy 引擎的 est()方法來(lái)快速查看狀態(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

暫停,恢復(fù)和停止 Scrapy 引擎

暫停:

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

恢復(fù):

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

停止:

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

Telnet 終端信號(hào)

scrapy.telnet.update_telnet_vars(telnet_vars)

在 telnet 終端開(kāi)啟前發(fā)送該信號(hào)。您可以掛載(hook up)該信號(hào)來(lái)添加,移除或更新 telnet 本地命名空間可用的變量。您可以通過(guò)在您的處理函數(shù)(handler)中更新 telnet_vars 字典來(lái)實(shí)現(xiàn)該修改。

參數(shù): telnet_vars (dict) – telnet 變量的字典

Telnet 設(shè)定

以下是終端的一些設(shè)定:

TELNETCONSOLE_PORT

Default:[6023, 6073]

telnet 終端使用的端口范圍。如果設(shè)為 None0, 則動(dòng)態(tài)分配端口。

TELNETCONSOLE_HOST

默認(rèn): '127.0.0.1'

telnet 終端監(jiān)聽(tīng)的接口(interface)。

上一篇:Scrapy 入門教程下一篇:發(fā)送 email