Bir geliştirme klonunun yanındaki proxy dosyası, crawler'ın dağıtılmış paketinde otomatik olarak bulunmaz. İki iş vardır: baytları dağıtıma dahil etmek, ardından kurulu pakette bulmak.

Python paketinin içinde crawl_app/resources/proxies.txt bulunan bir Setuptools projesi için pyproject.toml girişi bunu dahil edebilir:

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

Bunu projenin mevcut paket yapılandırmasıyla birleştirin. Farklı bir derleme arka ucunun kendi veri dahil etme arayüzü vardır.

Endpoint dizelerini tüketebilen middleware için Python 3.11+ paket kaynağını doğrudan okuyabilir:

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

Gerçek paket adını kullanın ve okuyucuda beklenen URL biçimini doğrulayın. Dağıtılabilir genel endpoint verileri için middleware'in beklediği protokol ve URL biçiminde ücretsiz proxy listesi adreslerini kullanın. Arama, dağıtımın geçerli çalışma dizinine bağlı değildir.

Üçüncü taraf bir PROXY_LIST ayarı bu dizeler yerine bir dosya sistemi yolu gerektirebilir. Bu arayüz için importlib.resources.as_file kullanırken, middleware çıkarılan dosyaya ihtiyaç duyduğu sürece bağlamını açık tutun. Bağlam kapatıldıktan sonra geçici bir yol döndürmek kaynağı kaybettirebilir.

Kimlik bilgileri içeren üretim listelerini dağıtım için amaçlanan gizli veya yapılandırma deposunda tutun. Paket verileri dağıtılabilir endpoint verileri için uygundur, kodla birlikte paketlenen her şeyin gizli kaldığı varsayımı için değil.

İlgili makaleler