您好,登錄后才能下訂單哦!
這篇文章主要講解了“scrapy遠程登錄控制臺如何實現”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“scrapy遠程登錄控制臺如何實現”吧!
Scrapy附帶一個內置的telnet控制臺,用于檢查和控制Scrapy運行過程。telnet控制臺只是一個運行在scrappy進程內部的常規python shell,因此您可以從中做任何事情。
telnet控制臺是一個 built-in Scrapy extension 它在默認情況下是啟用的,但如果需要,您也可以禁用它。有關擴展本身的更多信息,請參閱 Telnet控制臺擴展 。
警告
通過公共網絡使用telnet控制臺是不安全的,因為telnet不提供任何傳輸層安全性。擁有用戶名/密碼驗證不會改變這一點。
預期用途是本地連接到正在運行的Scrapy Spider(Spider進程和Telnet客戶端在同一臺計算機上)或通過安全連接(VPN、SSH通道)進行連接。請避免在不安全的連接上使用telnet控制臺,或使用 TELNETCONSOLE_ENABLED 選擇權。
telnet控制臺偵聽中定義的TCP端口 TELNETCONSOLE_PORT 設置,默認為 6023 . 要訪問控制臺,您需要鍵入:
telnet localhost 6023 Trying localhost... Connected to localhost. Escape character is '^]'. Username: Password: >>>
默認用戶名為 scrapy 密碼是自動生成的。自動生成的密碼可以在垃圾日志上看到,如下例所示:
2018-10-16 14:35:21 [scrapy.extensions.telnet] INFO: Telnet Password: 16f92501e8a59326
默認用戶名和密碼可以被設置覆蓋 TELNETCONSOLE_USERNAME 和 TELNETCONSOLE_PASSWORD .
警告
用戶名和密碼僅提供有限的保護,因為telnet不使用安全傳輸-默認情況下,即使設置了用戶名和密碼,通信也不會加密。
您需要在Windows和大多數Linux發行版中默認安裝的telnet程序。
elnet控制臺就像一個運行在scrappy進程內部的常規python shell,所以您可以從中做任何事情,包括導入新模塊等。
但是,telnet控制臺附帶一些為方便起見而定義的默認變量:
捷徑 | 描述 |
---|---|
crawler | 殘廢的爬蟲 (scrapy.crawler.Crawler 對象) |
engine | crawler.engine屬性 |
spider | 主動蜘蛛 |
slot | 發動機槽 |
extensions | 擴展管理器(crawler.extensions屬性) |
stats | stats收集器(crawler.stats屬性) |
settings | Scrapy設置對象(crawler.settings屬性) |
est | 打印發動機狀態報告 |
prefs | 內存調試(請參見 調試內存泄漏) |
p | 到的快捷方式 pprint.pprint() 功能 |
hpy | 內存調試(請參見 調試內存泄漏) |
以下是使用telnet控制臺可以執行的一些示例任務:
查看發動機狀態
你可以使用 est() scrapy引擎使用telnet控制臺快速顯示其狀態的方法:
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
暫停:
telnet localhost 6023 >>> engine.pause() >>>
恢復:
telnet localhost 6023 >>> engine.unpause() >>>
停止:
telnet localhost 6023 >>> engine.stop() Connection closed by foreign host.
Telnet控制臺信號
scrapy.extensions.telnet.update_telnet_vars(telnet_vars)
在telnet控制臺打開之前發送。您可以連接到這個信號來添加、刪除或更新telnet本地命名空間中可用的變量。為此,需要更新 telnet_vars 聽寫你的處理程序。
參數
telnet_vars (dict) – telnet變量的dict
以下是控制telnet控制臺行為的設置:
TELNETCONSOLE_PORT
違約: [6023, 6073]
用于telnet控制臺的端口范圍。如果設置為 None 或 0 ,使用動態分配的端口。
TELNETCONSOLE_HOST
違約: '127.0.0.1'
telnet控制臺應該監聽的接口
TELNETCONSOLE_USERNAME
違約: 'scrapy'
用于telnet控制臺的用戶名
TELNETCONSOLE_PASSWORD
違約: None
telnet控制臺使用的密碼,默認行為是讓它自動生成。
感謝各位的閱讀,以上就是“scrapy遠程登錄控制臺如何實現”的內容了,經過本文的學習后,相信大家對scrapy遠程登錄控制臺如何實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。