Menyertakan dan Memuatkan Senarai Proksi dalam Projek Scrapy yang Dikerahkan
Sertakan sumber senarai proksi Scrapy dalam pengedaran dan muatkannya mengikut lokasi pakej dan bukannya direktori kerja yang dikerahkan.
Fail proksi di sebelah salinan pembangunan tidak hadir secara automatik dalam pakej crawler yang dikerahkan. Terdapat dua tugas: sertakan bait dalam pengedaran, kemudian cari ia dalam pakej yang dipasang.
Untuk projek Setuptools dengan crawl_app/resources/proxies.txt di dalam pakej Pythonnya, entri pyproject.toml boleh menyertakannya:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
Gabungkan itu dengan konfigurasi pakej projek yang sedia ada. Backend binaan yang berbeza mempunyai antara muka penyertaan data sendiri.
Untuk middleware yang boleh menggunakan rentetan endpoint, Python 3.11+ boleh membaca sumber pakej secara langsung:
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()]
Gunakan nama pakej sebenar dan sahkan format URL yang dijangka dalam pembaca. Untuk data endpoint awam yang boleh diagihkan, gunakan alamat daripada senarai proksi percuma dalam protokol dan format URL yang dijangka oleh middleware. Pencarian tidak bergantung pada direktori kerja semasa penggunaan.
Tetapan PROXY_LIST pihak ketiga mungkin memerlukan laluan sistem fail dan bukannya rentetan ini. Apabila menggunakan importlib.resources.as_file untuk antara muka itu, kekalkan konteksnya terbuka selagi middleware memerlukan fail yang diekstrak. Memulangkan laluan sementara selepas konteks ditutup boleh kehilangan sumber itu.
Simpan senarai pengeluaran yang membawa kelayakan dalam storan rahsia atau konfigurasi yang dimaksudkan untuk penggunaan. Data pakej sesuai untuk data endpoint yang boleh diagihkan, bukan andaian bahawa semua yang dibundel dengan kod kekal peribadi.