Proxy lista beillesztése és betöltése egy telepített Scrapy-projektben
Illesszen be egy Scrapy proxy lista erőforrást a disztribúcióba, és a telepített munkakönyvtár helyett a csomag helye alapján töltse be.
A fejlesztési klón mellett lévő proxyfájl nem feltétlenül van jelen a crawler telepített csomagjában. Két feladat van: a bájtok beillesztése a disztribúcióba, majd megtalálásuk a telepített csomagban.
Egy Setuptools-projektnél, amelynek Python-csomagjában crawl_app/resources/proxies.txt van, egy pyproject.toml-bejegyzés beillesztheti:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
Egyesítse ezt a projekt meglévő csomagkonfigurációjával. Egy másik build backend saját adatbeillesztési felülettel rendelkezik.
Az endpoint-karakterláncokat fogyasztó middleware esetében a Python 3.11+ közvetlenül olvashatja a csomag erőforrását:
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()]
Használja a tényleges csomagnevet, és ellenőrizze az elvárt URL-formátumot az olvasóban. Terjeszthető nyilvános endpoint-adatokhoz használjon címeket a ingyenes proxy listáról a middleware által elvárt protokollban és URL-formátumban. A keresés nem függ az üzembe helyezés aktuális munkakönyvtárától.
Egy harmadik féltől származó PROXY_LIST-beállítás fájlrendszer-útvonalat igényelhet ezek helyett a karakterláncok helyett. Amikor importlib.resources.as_file-t használ ehhez a felülethez, tartsa nyitva a kontextusát mindaddig, amíg a middleware-nek szüksége van a kicsomagolt fájlra. A kontextus lezárása után visszaadott ideiglenes útvonal elveszítheti az erőforrást.
A hitelesítő adatokat tartalmazó éles listákat az üzembe helyezéshez szánt titkos vagy konfigurációs tárban tartsa. A csomagadatok terjeszthető endpoint-adatokhoz alkalmasak, nem annak feltételezésére, hogy minden, a kóddal együtt csomagolt elem privát marad.