4 changes: 1. asyncio.gather() в Phase B/C — 6 endpoints/obj параллельно через _fetch_*_safe wrappers. ~6x speedup (3.5h -> ~35min). BrowserSession._sem(3) bounds concurrent requests автоматически. 2. Wire documents extractor (services/scrapers/documents.py) — per-object call в parallel gather. Заполняет domrf_kn_documents (был пуст после PR #305 schema-only). 3. Create services/scrapers/obj_checks.py extractor + wire в loop. Заполняет domrf_obj_checks (был пуст после PR #303 schema-only). Endpoint URL /checks не верифицирован devtools — выведен по паттерну /infrastructure; при ошибке пишет в kn_scrape_failures. 4. Phase E (после Phase D) — UPDATE is_ekb=TRUE для свежего snapshot по district_name ILIKE екатеринбург/свердловск. Best-effort (exception caught, scrape не прерывается). |
||
|---|---|---|
| .. | ||
| cadastre | ||
| etl | ||
| exporters | ||
| generative | ||
| photos | ||
| scrapers | ||
| site_finder | ||
| __init__.py | ||
| analytics_queries.py | ||
| analytics_refresh.py | ||
| job_settings.py | ||
| objective_etl.py | ||
| objective_sync_config.py | ||