Ta med og last inn ei proxyliste i eit utrulla Scrapy-prosjekt
Ta med ein Scrapy-proxylisteressurs i distribusjonen og last han inn etter pakkeplassering i staden for den utrulla arbeidskatalogen.
Ei proxyfil ved sida av ein utviklingsklone er ikkje automatisk til stades i den utrulla pakka til crawleren. Det er to oppgåver: ta med byta i distribusjonen og deretter finne dei i den installerte pakka.
For eit Setuptools-prosjekt med crawl_app/resources/proxies.txt inne i Python-pakka kan ei pyproject.toml-oppføring ta henne med:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
Slå dette saman med den eksisterande pakkekonfigurasjonen til prosjektet. Ein annan byggjebackend har sitt eige grensesnitt for datainkludering.
For middleware som kan bruke endpoint-strengar, 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 pakkenamnet og valider det forventa URL-formatet i lesaren. For distribuerbare offentlege endpoint-data, bruk adresser frå gratis proxyliste i protokoll- og URL-formatet som middleware forventar. Oppslaget er ikkje avhengig av den noverande arbeidskatalogen til utrullinga.
Ei PROXY_LIST-innstilling frå tredjepart kan krevje ein filsystemsti i staden for desse strengane. Når du brukar importlib.resources.as_file for det grensesnittet, hald konteksten open så lenge middleware treng den utpakka fila. Å returnere ein mellombels sti etter at konteksten er lukka kan miste ressursen.
Oppbevar produksjonslister med legitimasjon i den tiltenkte hemmelegg- eller konfigurasjonslagringa for utrullinga. Pakkedata eignar seg for distribuerbare endpoint-data, ikkje ei føresetnad om at alt som blir pakka med kode blir verande privat.