Scrapy - คอนโซล Telnet
คำอธิบาย
Telnet console เป็น Python shell ซึ่งทำงานภายในกระบวนการ Scrapy และใช้สำหรับตรวจสอบและควบคุมกระบวนการทำงานของ Scrapy
เข้าถึง Telnet Console
สามารถเข้าถึงคอนโซล telnet ได้โดยใช้คำสั่งต่อไปนี้ -
telnet localhost 6023
โดยทั่วไปคอนโซล telnet จะแสดงรายการในพอร์ต TCP ซึ่งอธิบายไว้ใน TELNETCONSOLE_PORT การตั้งค่า
ตัวแปร
ตัวแปรเริ่มต้นบางตัวที่ระบุในตารางต่อไปนี้ใช้เป็นทางลัด -
ซีเนียร์ No | ทางลัดและคำอธิบาย |
---|---|
1 | crawler สิ่งนี้หมายถึงวัตถุ Scrapy Crawler (scrapy.crawler.Crawler) |
2 | engine ซึ่งอ้างถึงแอตทริบิวต์ Crawler.engine |
3 | spider นี่หมายถึงแมงมุมที่เคลื่อนไหวอยู่ |
4 | slot นี่หมายถึงช่องเครื่องยนต์ |
5 | extensions สิ่งนี้อ้างถึงแอตทริบิวต์ Extension Manager (Crawler.extensions) |
6 | stats สิ่งนี้อ้างถึงแอ็ตทริบิวต์ Stats Collector (Crawler.stats) |
7 | setting สิ่งนี้อ้างถึงแอตทริบิวต์การตั้งค่า Scrapy (Crawler.settings) |
8 | est หมายถึงการพิมพ์รายงานสถานะเครื่องยนต์ |
9 | prefs นี่หมายถึงหน่วยความจำสำหรับการดีบัก |
10 | p นี่หมายถึงทางลัดไปยังฟังก์ชันpprint.pprint |
11 | hpy นี่หมายถึงการดีบักหน่วยความจำ |
ตัวอย่าง
ต่อไปนี้เป็นตัวอย่างบางส่วนที่แสดงโดยใช้ Telnet Console
หยุดชั่วคราวดำเนินการต่อและหยุด Scrapy Engine
ในการหยุดโปรแกรม Scrapy ชั่วคราวให้ใช้คำสั่งต่อไปนี้ -
telnet localhost 6023
>>> engine.pause()
>>>
หากต้องการกลับมาใช้ Scrapy engine ให้ใช้คำสั่งต่อไปนี้ -
telnet localhost 6023
>>> engine.unpause()
>>>
ในการหยุดเครื่องยนต์ Scrapy ให้ใช้คำสั่งต่อไปนี้ -
telnet localhost 6023
>>> engine.stop()
Connection closed by foreign host.
ดูสถานะเครื่องยนต์
ใช้คอนโซล Telnet est() วิธีตรวจสอบสถานะของเครื่องยนต์ Scrapy ตามที่แสดงในรหัสต่อไปนี้ -
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
คุณสามารถใช้สัญญาณคอนโซล telnet เพื่อเพิ่มอัปเดตหรือลบตัวแปรในเนมสเปซโลคัลเทลเน็ต ในการดำเนินการนี้คุณต้องเพิ่ม telnet_vars dict ในตัวจัดการของคุณ
scrapy.extensions.telnet.update_telnet_vars(telnet_vars)
พารามิเตอร์ -
telnet_vars (dict)
โดยที่ dict คือพจนานุกรมที่มีตัวแปร telnet
การตั้งค่า Telnet
ตารางต่อไปนี้แสดงการตั้งค่าที่ควบคุมลักษณะการทำงานของ Telnet Console -
ซีเนียร์ No | การตั้งค่าและคำอธิบาย | ค่าเริ่มต้น |
---|---|---|
1 | TELNETCONSOLE_PORT นี่หมายถึงช่วงพอร์ตสำหรับคอนโซล telnet หากตั้งค่าเป็นไม่มีพอร์ตจะถูกกำหนดแบบไดนามิก |
[6023, 6073] |
2 | TELNETCONSOLE_HOST นี่หมายถึงอินเทอร์เฟซที่คอนโซล telnet ควรรับฟัง |
'127.0.0.1' |