สไปเดอร์สามารถใช้พร็อกซีที่คาดไว้ภายใต้ scrapy crawl และจะเชื่อมต่อโดยตรงเมื่อถูกเรียกโดยสคริปต์ Python ตรวจสอบว่าสคริปต์นั้นสร้างการตั้งค่าอย่างไรก่อนเปลี่ยนพร็อกซีเซิร์ฟเวอร์

สำหรับโปรเจกต์ Scrapy ที่มีอยู่และสไปเดอร์ที่ลงทะเบียนไว้:

from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings

settings = get_project_settings()
process = CrawlerProcess(settings=settings)
process.crawl('catalog')
process.start()

แทนที่ catalog ด้วยชื่อสไปเดอร์ของโปรเจกต์ โปรเจกต์ต้องถูกค้นพบผ่าน scrapy.cfg หรือผ่าน SCRAPY_SETTINGS_MODULE ที่ตั้งค่าอย่างถูกต้องและชี้ไปยังโมดูลการตั้งค่าที่นำเข้าได้

การสร้างเพียง CrawlerProcess() ไม่ได้นำเข้าไฟล์การตั้งค่าของโปรเจกต์เพียงเพราะสคริปต์นำเข้าคลาสสไปเดอร์ด้วย ดังนั้นมิดเดิลแวร์ที่กำหนดเองซึ่งเปิดโดย DOWNLOADER_MIDDLEWARES อาจหายไปจากการรันนั้น

การโหลดการตั้งค่าจัดหาคอมโพเนนต์ที่กำหนดค่าไว้ แต่ไม่ได้สร้างที่อยู่พร็อกซีขึ้นมา มิดเดิลแวร์พร็อกซี HTTP ของ Scrapy ยังคงต้องใช้พร็อกซีสภาพแวดล้อมปกติหรือค่า request.meta['proxy'] ที่ระบุชัดเจน ตรวจสอบว่า HTTPPROXY_ENABLED ไม่ได้ปิดใช้งาน สำหรับการรวบรวมหน้าเว็บสาธารณะที่ได้รับอนุญาต รายการพร็อกซี HTTP มีผู้สมัครสำหรับค่าพร็อกซี HTTP ที่ส่งผ่านเมทาดาทาหรือสภาพแวดล้อมนั้น

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

บทความที่เกี่ยวข้อง