Байршуулсан Scrapy төсөлд прокси жагсаалтыг оруулж ачаалах
Scrapy прокси жагсаалтын нөөцийг түгээлтэд оруулж, байршуулсан ажлын хавтасны оронд багцын байршлаар ачаална.
Хөгжүүлэлтийн клоны хажууд байгаа прокси файл crawler-ийн байршуулсан багцад автоматаар байхгүй. Хоёр ажил байна: байтуудыг түгээлтэд оруулах, дараа нь суулгасан багцаас олох.
Python багц дотороо crawl_app/resources/proxies.txt-тэй Setuptools төслийн хувьд pyproject.toml бичлэг үүнийг оруулж болно:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
Үүнийг төслийн одоо байгаа багцын тохиргоотой нэгтгэнэ. Өөр build backend өөрийн өгөгдөл оруулах интерфэйстэй.
endpoint мөрүүдийг ашиглах боломжтой middleware-ийн хувьд 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 өгөгдлийн хувьд middleware-ийн хүлээж буй протокол ба URL форматтай үнэгүй прокси жагсаалт хаягуудыг ашиглана. Хайлт нь байршуулалтын одоогийн ажлын хавтаснаас хамаарахгүй.
Гуравдагч талын PROXY_LIST тохиргоо эдгээр мөрний оронд файлын системийн зам шаардаж болно. Тухайн интерфэйст importlib.resources.as_file ашиглахдаа middleware-д гаргаж авсан файл хэрэгтэй байх хугацаанд түүний контекстийг нээлттэй байлгана. Контекст хаагдсаны дараа түр замыг буцаах нь нөөцийг алдаж болно.
Итгэмжлэл агуулсан үйлдвэрлэлийн жагсаалтыг байршуулалтад зориулсан нууц эсвэл тохиргооны санд хадгална. Багцын өгөгдөл нь түгээх боломжтой endpoint өгөгдөлд тохиромжтой, кодтой хамт багцлагдсан бүхэн нууц хэвээр байна гэсэн таамаглал биш.