Starpniekserveru saraksta iekļaušana un ielāde izvietotā Scrapy projektā
Iekļaujiet Scrapy starpniekserveru saraksta resursu izplatīšanā un ielādējiet to pēc pakotnes atrašanās vietas, nevis izvietotās darba direktorijas.
Starpniekservera fails blakus izstrādes klonam nav automātiski izvietotajā crawler pakotnē. Ir divi darbi: iekļaut baitus izplatīšanā un pēc tam tos atrast instalētajā pakotnē.
Setuptools projektam ar crawl_app/resources/proxies.txt tā Python pakotnē pyproject.toml ieraksts var to iekļaut:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
Apvienojiet to ar projekta esošo pakotnes konfigurāciju. Citam build backend ir sava datu iekļaušanas saskarne.
Middleware, kas var patērēt endpoint virknes, Python 3.11+ var tieši nolasīt pakotnes resursu:
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()]
Izmantojiet faktisko pakotnes nosaukumu un lasītājā pārbaudiet gaidīto URL formātu. Izplatāmiem publiskiem endpoint datiem izmantojiet adreses no bezmaksas starpniekserveru saraksta middleware gaidītajā protokolā un URL formātā. Meklēšana nav atkarīga no izvietošanas pašreizējās darba direktorijas.
Trešās puses PROXY_LIST iestatījums var prasīt failu sistēmas ceļu šo virkņu vietā. Izmantojot importlib.resources.as_file šai saskarnei, turiet tās kontekstu atvērtu tik ilgi, kamēr middleware ir nepieciešams izvilktais fails. Pagaidu ceļa atgriešana pēc konteksta aizvēršanas var zaudēt resursu.
Glabājiet ražošanas sarakstus ar akreditācijas datiem izvietošanai paredzētajā slepeno datu vai konfigurācijas krātuvē. Pakotnes dati ir piemēroti izplatāmiem endpoint datiem, nevis pieņēmumam, ka viss kopā ar kodu iepakotais paliek privāts.