日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

scrapy?遠(yuǎn)程登錄控制臺的實現(xiàn)_python

作者:卑微小鐘 ? 更新時間: 2023-06-19 編程語言

遠(yuǎn)程登錄控制臺

Scrapy附帶一個內(nèi)置的telnet控制臺,用于檢查和控制Scrapy運行過程。telnet控制臺只是一個運行在scrappy進程內(nèi)部的常規(guī)python shell,因此您可以從中做任何事情。

telnet控制臺是一個 built-in Scrapy extension 它在默認(rèn)情況下是啟用的,但如果需要,您也可以禁用它。有關(guān)擴展本身的更多信息,請參閱 Telnet控制臺擴展 。

警告

通過公共網(wǎng)絡(luò)使用telnet控制臺是不安全的,因為telnet不提供任何傳輸層安全性。擁有用戶名/密碼驗證不會改變這一點。
預(yù)期用途是本地連接到正在運行的Scrapy Spider(Spider進程和Telnet客戶端在同一臺計算機上)或通過安全連接(VPN、SSH通道)進行連接。請避免在不安全的連接上使用telnet控制臺,或使用 TELNETCONSOLE_ENABLED 選擇權(quán)。

如何訪問telnet控制臺

telnet控制臺偵聽中定義的TCP端口 TELNETCONSOLE_PORT 設(shè)置,默認(rèn)為 6023 . 要訪問控制臺,您需要鍵入:

telnet localhost 6023
Trying localhost...
Connected to localhost.
Escape character is '^]'.
Username:
Password:
>>>

默認(rèn)用戶名為 scrapy 密碼是自動生成的。自動生成的密碼可以在垃圾日志上看到,如下例所示:

2018-10-16 14:35:21 [scrapy.extensions.telnet] INFO: Telnet Password: 16f92501e8a59326
默認(rèn)用戶名和密碼可以被設(shè)置覆蓋 TELNETCONSOLE_USERNAME 和 TELNETCONSOLE_PASSWORD .

警告
用戶名和密碼僅提供有限的保護,因為telnet不使用安全傳輸-默認(rèn)情況下,即使設(shè)置了用戶名和密碼,通信也不會加密。

您需要在Windows和大多數(shù)Linux發(fā)行版中默認(rèn)安裝的telnet程序。

telnet控制臺中的可用變量

elnet控制臺就像一個運行在scrappy進程內(nèi)部的常規(guī)python shell,所以您可以從中做任何事情,包括導(dǎo)入新模塊等。

但是,telnet控制臺附帶一些為方便起見而定義的默認(rèn)變量:

捷徑 描述
crawler 殘廢的爬蟲 (scrapy.crawler.Crawler 對象)
engine crawler.engine屬性
spider 主動蜘蛛
slot 發(fā)動機槽
extensions 擴展管理器(crawler.extensions屬性)
stats stats收集器(crawler.stats屬性)
settings Scrapy設(shè)置對象(crawler.settings屬性)
est 打印發(fā)動機狀態(tài)報告
prefs 內(nèi)存調(diào)試(請參見 調(diào)試內(nèi)存泄漏)
p 到的快捷方式 pprint.pprint()功能
hpy 內(nèi)存調(diào)試(請參見 調(diào)試內(nèi)存泄漏)

telnet控制臺使用示例

以下是使用telnet控制臺可以執(zhí)行的一些示例任務(wù):

查看發(fā)動機狀態(tài)
你可以使用 est() scrapy引擎使用telnet控制臺快速顯示其狀態(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ù)和停止報廢發(fā)動機

暫停:

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

恢復(fù):

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控制臺打開之前發(fā)送。您可以連接到這個信號來添加、刪除或更新telnet本地命名空間中可用的變量。為此,需要更新 telnet_vars 聽寫你的處理程序。

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

遠(yuǎn)程登錄設(shè)置

以下是控制telnet控制臺行為的設(shè)置:

TELNETCONSOLE_PORT

違約: [6023, 6073]

用于telnet控制臺的端口范圍。如果設(shè)置為 None 或 0 ,使用動態(tài)分配的端口。

TELNETCONSOLE_HOST

違約: '127.0.0.1'

telnet控制臺應(yīng)該監(jiān)聽的接口

TELNETCONSOLE_USERNAME

違約: 'scrapy'

用于telnet控制臺的用戶名

TELNETCONSOLE_PASSWORD

違約: None

telnet控制臺使用的密碼,默認(rèn)行為是讓它自動生成。

原文鏈接:https://blog.csdn.net/zhongjianboy/article/details/129221371

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新