ລວມ ແລະ ໂຫຼດລາຍຊື່ພຣອກຊີໃນໂຄງການ Scrapy ທີ່ຕິດຕັ້ງແລ້ວ
ລວມຊັບພະຍາກອນລາຍຊື່ພຣອກຊີ Scrapy ໃນການແຈກຢາຍ ແລະ ໂຫຼດມັນຕາມຕຳແໜ່ງແພັກເກັດ ແທນທີ່ຈະເປັນໂຟນເດີເຮັດວຽກທີ່ຕິດຕັ້ງແລ້ວ.
ໄຟລ໌ພຣອກຊີທີ່ຢູ່ຂ້າງສຳເນົາພັດທະນາບໍ່ໄດ້ມີຢູ່ໃນແພັກເກັດທີ່ຕິດຕັ້ງແລ້ວຂອງ crawler ໂດຍອັດຕະໂນມັດ. ມີສອງວຽກ: ລວມໄບຕ໌ເຂົ້າໃນການແຈກຢາຍ ແລ້ວຊອກຫາພວກມັນໃນແພັກເກັດທີ່ຕິດຕັ້ງແລ້ວ.
ສຳລັບໂຄງການ Setuptools ທີ່ມີ crawl_app/resources/proxies.txt ຢູ່ໃນແພັກເກັດ Python ຂອງມັນ, ລາຍການ pyproject.toml ສາມາດລວມມັນໄດ້:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
ລວມມັນກັບການຕັ້ງຄ່າແພັກເກັດທີ່ມີຢູ່ແລ້ວຂອງໂຄງການ. build 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 ທີ່ແຈກຢາຍໄດ້ ບໍ່ແມ່ນການສົມມຸດວ່າທຸກຢ່າງທີ່ຫໍ່ກັບໂຄດຈະຢູ່ເປັນສ່ວນຕົວ.