Scrapy - ข้อยกเว้น

คำอธิบาย

เหตุการณ์ที่ผิดปกติเรียกว่าข้อยกเว้น ใน Scrapy จะมีการเพิ่มข้อยกเว้นเนื่องจากสาเหตุต่างๆเช่นการกำหนดค่าที่ขาดหายไปการทิ้งรายการจากท่อส่งสินค้าเป็นต้นต่อไปนี้เป็นรายการข้อยกเว้นที่กล่าวถึงใน Scrapy และการประยุกต์ใช้

DropItem

ไปป์ไลน์ไอเทมใช้ข้อยกเว้นนี้เพื่อหยุดการประมวลผลไอเท็มในทุกขั้นตอน สามารถเขียนเป็น -

exception (scrapy.exceptions.DropItem)

ปิด

ข้อยกเว้นนี้ใช้เพื่อหยุดสไปเดอร์โดยใช้คำขอเรียกกลับ สามารถเขียนเป็น -

exception (scrapy.exceptions.CloseSpider)(reason = 'cancelled')

ประกอบด้วยพารามิเตอร์ที่เรียกว่าเหตุผล (str)ซึ่งระบุเหตุผลในการปิด

ตัวอย่างเช่นรหัสต่อไปนี้แสดงการใช้ข้อยกเว้นนี้ -

def parse_page(self, response): 
   if 'Bandwidth exceeded' in response.body: 
      raise CloseSpider('bandwidth_exceeded')

ละเว้นคำขอ

ข้อยกเว้นนี้ถูกใช้โดยตัวกำหนดตารางเวลาหรือมิดเดิลแวร์ตัวดาวน์โหลดเพื่อละเว้นคำขอ สามารถเขียนเป็น -

exception (scrapy.exceptions.IgnoreRequest)

ไม่ได้กำหนดค่า

มันบ่งบอกถึงสถานการณ์การกำหนดค่าที่ขาดหายไปและควรถูกยกขึ้นในตัวสร้างคอมโพเนนต์

exception (scrapy.exceptions.NotConfigured)

ข้อยกเว้นนี้สามารถเพิ่มขึ้นได้หากมีการปิดใช้งานส่วนประกอบใด ๆ ต่อไปนี้

  • Extensions
  • ท่อไอเทม
  • ดาวน์โหลดมิดเดิลแวร์
  • แมงมุมมิดเดิ้ล

ไม่รองรับ

ข้อยกเว้นนี้จะเพิ่มขึ้นเมื่อไม่รองรับฟีเจอร์หรือวิธีการใด ๆ สามารถเขียนเป็น -

exception (scrapy.exceptions.NotSupported)