Includerea și încărcarea unei liste de proxy într-un proiect Scrapy implementat
Includeți o resursă de listă de proxy Scrapy în distribuție și încărcați-o după locația pachetului în locul directorului de lucru implementat.
Un fișier de proxy lângă o copie de dezvoltare nu este prezent automat în pachetul implementat al crawlerului. Există două sarcini: includerea octeților în distribuție, apoi găsirea lor în pachetul instalat.
Pentru un proiect Setuptools cu crawl_app/resources/proxies.txt în pachetul său Python, o intrare în pyproject.toml îl poate include:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
Îmbinați aceasta cu configurația existentă a pachetului proiectului. Un alt backend de build are propria interfață de includere a datelor.
Pentru middleware care poate consuma șiruri de endpoint, Python 3.11+ poate citi direct resursa pachetului:
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()]
Utilizați numele real al pachetului și validați formatul URL așteptat în cititor. Pentru date endpoint publice distribuibile, utilizați adrese din lista de proxy gratuite în protocolul și formatul URL așteptate de middleware. Căutarea nu depinde de directorul de lucru curent al implementării.
O setare PROXY_LIST de la terți poate necesita o cale de sistem de fișiere în locul acestor șiruri. Când utilizați importlib.resources.as_file pentru acea interfață, păstrați contextul acestuia deschis cât timp middleware are nevoie de fișierul extras. Returnarea unei căi temporare după închiderea contextului poate pierde resursa.
Păstrați listele de producție cu credențiale în depozitul de secrete sau configurație destinat implementării. Datele pachetului sunt potrivite pentru date endpoint distribuibile, nu pentru presupunerea că tot ce este împachetat cu codul rămâne privat.