Ta med og last inn en proxyliste i et utrullet Scrapy-prosjekt
Ta med en Scrapy-proxylisteressurs i distribusjonen og last den inn etter pakkeplassering i stedet for den utrullede arbeidskatalogen.
En proxyfil ved siden av en utviklingsklone er ikke automatisk til stede i crawlerens utrullede pakke. Det er to oppgaver: ta med bytene i distribusjonen og deretter finne dem i den installerte pakken.
For et Setuptools-prosjekt med crawl_app/resources/proxies.txt inne i Python-pakken kan en pyproject.toml-oppføring ta den med:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
Slå dette sammen med prosjektets eksisterende pakkekonfigurasjon. En annen byggebackend har sitt eget grensesnitt for datainkludering.
For middleware som kan bruke endpoint-strenger, kan Python 3.11+ lese pakkeressursen direkte:
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()]
Bruk det faktiske pakkenavnet og valider det forventede URL-formatet i leseren. For distribuerbare offentlige endpoint-data, bruk adresser fra gratis proxyliste i protokoll- og URL-formatet som middleware forventer. Oppslaget avhenger ikke av utrullingens nåværende arbeidskatalog.
En tredjeparts PROXY_LIST-innstilling kan kreve en filsystemsti i stedet for disse strengene. Når du bruker importlib.resources.as_file for det grensesnittet, hold konteksten åpen så lenge middleware trenger den utpakkede filen. Å returnere en midlertidig sti etter at konteksten er lukket kan miste ressursen.
Oppbevar produksjonslister med legitimasjonsdata i den tiltenkte hemmelighets- eller konfigurasjonslagringen for utrullingen. Pakkedata egner seg for distribuerbare endpoint-data, ikke en antakelse om at alt som pakkes med kode forblir privat.