rates/backend/services/scraper_backends
jtricerolph ca76bc2f90 Fix proxy never being used in hotel-page scraper
_proxy_enabled() was checking cfg.get('server') but load_config() returns
{host, port, username, ...} — no 'server' key. Server URL is built by
proxy_util.playwright_proxy(). This meant proxy was silently disabled
and _proxy_kwargs() would also KeyError if called.

- _proxy_enabled() now delegates to proxy_util.is_enabled() (checks host+username)
- _proxy_kwargs() now calls proxy_util.playwright_proxy() with credentials
  embedded in the URL (avoids 14s DataImpulse 407 round-trip)
- _get_context() generates a sticky session_id per context so each worker
  gets a distinct residential IP lane

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 00:21:42 +00:00
..
__init__.py Add hotel-page scraper backend with full room/rate plan extraction 2026-07-09 23:08:03 +00:00
base.py Add hotel-page scraper backend with full room/rate plan extraction 2026-07-09 23:08:03 +00:00
playwright_hotel_page.py Fix proxy never being used in hotel-page scraper 2026-07-10 00:21:42 +00:00
playwright_local.py Fix page.content() blocking ~2 minutes after goto timeout on Cloudflare hits 2026-07-09 21:34:37 +00:00