การรวมและโหลดรายการพร็อกซีในโปรเจกต์ Scrapy ที่ปรับใช้แล้ว
รวมทรัพยากรリストรายการพร็อกซีของ Scrapy ไว้ในการเผยแพร่ และโหลดตามตำแหน่งแพ็กเกจแทนไดเรกทอรีทำงานที่ปรับใช้แล้ว
ไฟล์พร็อกซีที่อยู่ข้างสำเนาการพัฒนาจะไม่ปรากฏโดยอัตโนมัติในแพ็กเกจที่ปรับใช้ของ crawler มีสองงาน: รวมไบต์ไว้ในการเผยแพร่ แล้วค้นหาในแพ็กเกจที่ติดตั้งแล้ว
สำหรับโปรเจกต์ Setuptools ที่มี crawl_app/resources/proxies.txt ภายในแพ็กเกจ Python รายการใน pyproject.toml สามารถรวมไฟล์นั้นได้:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
รวมการตั้งค่านี้กับการกำหนดค่าแพ็กเกจที่มีอยู่ของโปรเจกต์ ส่วน backend การสร้างอื่นมีอินเทอร์เฟซการรวมข้อมูลของตนเอง
สำหรับ middleware ที่สามารถใช้สตริง endpoint ได้ Python 3.11+ สามารถอ่านทรัพยากรของแพ็กเกจได้โดยตรง:
from importlib.resources import files
text = files('crawl_app').joinpath('resources', 'proxies.txt').read_text(
encoding='utf-8'
)
proxy_urls = [line.strip() for line in text.splitlines() if line.strip()]
ใช้ชื่อแพ็กเกจจริงและตรวจสอบรูปแบบ URL ที่คาดหวังในตัวอ่าน สำหรับข้อมูล endpoint สาธารณะที่เผยแพร่ได้ ให้ใช้ที่อยู่จาก รายการพร็อกซีฟรี ในโปรโตคอลและรูปแบบ URL ที่ middleware คาดหวัง การค้นหาไม่ขึ้นกับไดเรกทอรีทำงานปัจจุบันของการปรับใช้
การตั้งค่า PROXY_LIST ของบุคคลที่สามอาจต้องใช้พาธระบบไฟล์แทนสตริงเหล่านี้ เมื่อใช้ importlib.resources.as_file สำหรับอินเทอร์เฟซนั้น ให้คงบริบทเปิดไว้ตราบเท่าที่ middleware ต้องการไฟล์ที่แยกออกมา การคืนพาธชั่วคราวหลังจากปิดบริบทอาจทำให้สูญเสียทรัพยากร
เก็บรายการโปรดักชันที่มีข้อมูลรับรองไว้ในที่เก็บความลับหรือการกำหนดค่าที่ตั้งใจไว้สำหรับการปรับใช้ ข้อมูลแพ็กเกจเหมาะสำหรับข้อมูล endpoint ที่เผยแพร่ได้ ไม่ใช่การสันนิษฐานว่าทุกสิ่งที่บันเดิลกับโค้ดจะยังคงเป็นส่วนตัว