Вклучување и вчитување на список со прокси во распореден 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 податоци, а не претпоставка дека сè што е спакувано со код останува приватно.