Un file di proxy accanto a una copia di sviluppo non è automaticamente presente nel pacchetto distribuito del crawler. Ci sono due attività: includere i byte nella distribuzione, poi trovarli nel pacchetto installato.

Per un progetto Setuptools con crawl_app/resources/proxies.txt all'interno del suo pacchetto Python, una voce pyproject.toml può includerlo:

[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]

Unite questa impostazione alla configurazione esistente del pacchetto del progetto. Un diverso backend di build ha la propria interfaccia di inclusione dei dati.

Per il middleware che può consumare stringhe di endpoint, Python 3.11+ può leggere direttamente la risorsa del pacchetto:

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()]

Usate il nome effettivo del pacchetto e validate il formato URL previsto nel lettore. Per dati endpoint pubblici distribuibili, usate indirizzi dal elenco di proxy gratuiti nel protocollo e nel formato URL attesi dal middleware. La ricerca non dipende dalla directory di lavoro corrente della distribuzione.

Un'impostazione PROXY_LIST di terze parti può richiedere un percorso del filesystem anziché queste stringhe. Quando usate importlib.resources.as_file per quell'interfaccia, mantenete il suo contesto aperto finché il middleware necessita del file estratto. Restituire un percorso temporaneo dopo la chiusura del contesto può perdere la risorsa.

Conservate gli elenchi di produzione con credenziali nell'archivio di segreti o configurazione previsto per la distribuzione. I dati del pacchetto sono adatti a dati endpoint distribuibili, non a presupporre che tutto ciò che è impacchettato con il codice rimanga privato.

Articoli correlati