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'