Укључивање и учитавање листе проксија у распоређеном 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 податке, а не претпоставку да све што је спаковано са кодом остаје приватно.