scrapy 遠(yuǎn)程登錄控制臺(tái)的實(shí)現(xiàn)
遠(yuǎn)程登錄控制臺(tái)
Scrapy附帶一個(gè)內(nèi)置的telnet控制臺(tái),用于檢查和控制Scrapy運(yùn)行過(guò)程。telnet控制臺(tái)只是一個(gè)運(yùn)行在scrappy進(jìn)程內(nèi)部的常規(guī)python shell,因此您可以從中做任何事情。
telnet控制臺(tái)是一個(gè) built-in Scrapy extension 它在默認(rèn)情況下是啟用的,但如果需要,您也可以禁用它。有關(guān)擴(kuò)展本身的更多信息,請(qǐng)參閱 Telnet控制臺(tái)擴(kuò)展 。
警告
通過(guò)公共網(wǎng)絡(luò)使用telnet控制臺(tái)是不安全的,因?yàn)閠elnet不提供任何傳輸層安全性。擁有用戶名/密碼驗(yàn)證不會(huì)改變這一點(diǎn)。
預(yù)期用途是本地連接到正在運(yùn)行的Scrapy Spider(Spider進(jìn)程和Telnet客戶端在同一臺(tái)計(jì)算機(jī)上)或通過(guò)安全連接(VPN、SSH通道)進(jìn)行連接。請(qǐng)避免在不安全的連接上使用telnet控制臺(tái),或使用 TELNETCONSOLE_ENABLED 選擇權(quán)。
如何訪問(wèn)telnet控制臺(tái)
telnet控制臺(tái)偵聽中定義的TCP端口 TELNETCONSOLE_PORT 設(shè)置,默認(rèn)為 6023 . 要訪問(wèn)控制臺(tái),您需要鍵入:
telnet localhost 6023 Trying localhost... Connected to localhost. Escape character is '^]'. Username: Password: >>>
默認(rèn)用戶名為 scrapy 密碼是自動(dòng)生成的。自動(dòng)生成的密碼可以在垃圾日志上看到,如下例所示:
2018-10-16 14:35:21 [scrapy.extensions.telnet] INFO: Telnet Password: 16f92501e8a59326
默認(rèn)用戶名和密碼可以被設(shè)置覆蓋 TELNETCONSOLE_USERNAME 和 TELNETCONSOLE_PASSWORD .
警告
用戶名和密碼僅提供有限的保護(hù),因?yàn)閠elnet不使用安全傳輸-默認(rèn)情況下,即使設(shè)置了用戶名和密碼,通信也不會(huì)加密。
您需要在Windows和大多數(shù)Linux發(fā)行版中默認(rèn)安裝的telnet程序。
telnet控制臺(tái)中的可用變量
elnet控制臺(tái)就像一個(gè)運(yùn)行在scrappy進(jìn)程內(nèi)部的常規(guī)python shell,所以您可以從中做任何事情,包括導(dǎo)入新模塊等。
但是,telnet控制臺(tái)附帶一些為方便起見而定義的默認(rèn)變量:
| 捷徑 | 描述 |
|---|---|
crawler | 殘廢的爬蟲 (scrapy.crawler.Crawler 對(duì)象) |
engine | crawler.engine屬性 |
spider | 主動(dòng)蜘蛛 |
slot | 發(fā)動(dòng)機(jī)槽 |
extensions | 擴(kuò)展管理器(crawler.extensions屬性) |
stats | stats收集器(crawler.stats屬性) |
settings | Scrapy設(shè)置對(duì)象(crawler.settings屬性) |
est | 打印發(fā)動(dòng)機(jī)狀態(tài)報(bào)告 |
prefs | 內(nèi)存調(diào)試(請(qǐng)參見 調(diào)試內(nèi)存泄漏) |
p | 到的快捷方式 pprint.pprint()功能 |
hpy | 內(nèi)存調(diào)試(請(qǐng)參見 調(diào)試內(nèi)存泄漏) |
telnet控制臺(tái)使用示例
以下是使用telnet控制臺(tái)可以執(zhí)行的一些示例任務(wù):
查看發(fā)動(dòng)機(jī)狀態(tài)
你可以使用 est() scrapy引擎使用telnet控制臺(tái)快速顯示其狀態(tài)的方法:
elnet localhost 6023 >>> est() Execution engine status time()-engine.start_time ? ? ? ? ? ? ? ? ? ? ? ?: 8.62972998619 len(engine.downloader.active) ? ? ? ? ? ? ? ? ? : 16 engine.scraper.is_idle() ? ? ? ? ? ? ? ? ? ? ? ?: False engine.spider.name ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?: followall engine.spider_is_idle() ? ? ? ? ? ? ? ? ? ? ? ? : 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ù)和停止報(bào)廢發(fā)動(dòng)機(jī)
暫停:
telnet localhost 6023 >>> engine.pause() >>>
恢復(fù):
telnet localhost 6023 >>> engine.unpause() >>>
停止:
telnet localhost 6023 >>> engine.stop() Connection closed by foreign host.
Telnet控制臺(tái)信號(hào)
scrapy.extensions.telnet.update_telnet_vars(telnet_vars)
在telnet控制臺(tái)打開之前發(fā)送。您可以連接到這個(gè)信號(hào)來(lái)添加、刪除或更新telnet本地命名空間中可用的變量。為此,需要更新 telnet_vars 聽寫你的處理程序。
參數(shù)
telnet_vars (dict) – telnet變量的dict
遠(yuǎn)程登錄設(shè)置
以下是控制telnet控制臺(tái)行為的設(shè)置:
TELNETCONSOLE_PORT
違約: [6023, 6073]
用于telnet控制臺(tái)的端口范圍。如果設(shè)置為 None 或 0 ,使用動(dòng)態(tài)分配的端口。
TELNETCONSOLE_HOST
違約: '127.0.0.1'
telnet控制臺(tái)應(yīng)該監(jiān)聽的接口
TELNETCONSOLE_USERNAME
違約: 'scrapy'
用于telnet控制臺(tái)的用戶名
TELNETCONSOLE_PASSWORD
違約: None
telnet控制臺(tái)使用的密碼,默認(rèn)行為是讓它自動(dòng)生成。
到此這篇關(guān)于scrapy 遠(yuǎn)程登錄控制臺(tái)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)scrapy 遠(yuǎn)程登錄控制臺(tái)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python Dijkstra算法實(shí)現(xiàn)最短路徑問(wèn)題的方法
這篇文章主要介紹了python Dijkstra算法實(shí)現(xiàn)最短路徑問(wèn)題的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
python 使用Yolact訓(xùn)練自己的數(shù)據(jù)集
這篇文章主要介紹了python 使用Yolact訓(xùn)練自己的數(shù)據(jù)集,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04
Python深度學(xué)習(xí)之實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)
今天帶大家學(xué)習(xí)如何使用Python實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò),這是個(gè)很難的知識(shí)點(diǎn),文中有非常詳細(xì)的介紹,對(duì)小伙伴們很有幫助,需要的朋友可以參考下2021-06-06
python GUI庫(kù)圖形界面開發(fā)之PyQt5不規(guī)則窗口實(shí)現(xiàn)與顯示GIF動(dòng)畫的詳細(xì)方法與實(shí)例
這篇文章主要介紹了python GUI庫(kù)圖形界面開發(fā)之PyQt5不規(guī)則窗口與顯示GIF動(dòng)畫的詳細(xì)方法與實(shí)例,需要的朋友可以參考下2020-03-03
Python?xlwt工具使用詳解,生成excel欄位寬度可自適應(yīng)內(nèi)容長(zhǎng)度
這篇文章主要介紹了Python?xlwt工具使用詳解,生成excel欄位寬度可自適應(yīng)內(nèi)容長(zhǎng)度,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Python3使用PyQt5制作簡(jiǎn)單的畫板/手寫板實(shí)例
下面小編就為大家?guī)?lái)一篇Python3使用PyQt5制作簡(jiǎn)單的畫板/手寫板實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10
python將多個(gè)py文件和其他文件打包為exe可執(zhí)行文件
這篇文章主要介紹了python將多個(gè)py文件和其他文件打包為exe可執(zhí)行文件,通過(guò)準(zhǔn)備要打包的工程文件展開詳情,需要的小伙伴可以參考一下2022-05-05
Python結(jié)合Sprak實(shí)現(xiàn)計(jì)算曲線與X軸上方的面積
這篇文章主要介紹了Python結(jié)合Sprak實(shí)現(xiàn)計(jì)算曲線與X軸上方的面積,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-02-02
深入解析Python設(shè)計(jì)模式編程中建造者模式的使用
這篇文章主要介紹了深入解析Python設(shè)計(jì)模式編程中建造者模式的使用,建造者模式的程序通常將所有細(xì)節(jié)都交由子類實(shí)現(xiàn),需要的朋友可以參考下2016-03-03

