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)