Scrape VRBO (Expedia Group) vacation-rental search results and listing details by destination: title, location, price per night, beds/baths, guests, rating, reviews, amenities, host, and coordinates. Camoufox-powered to clear anti-bot challenges. Pay only per listing scraped.
Fixes two cloud-QA blockers found after the initial Camoufox build:
Proxy: Apify's shared RESIDENTIAL proxy pool is Akamai-flagged
for vrbo.com (429 "Bot or Not?" challenge, confirmed via cloud QA).
resolve_proxy now prefers a WEBSHARE_PROXY_URL env var (parsed
into the same Playwright-shaped proxy dict) when set, falling back to
the original Apify RESIDENTIAL → BUYPROXIES94952 resolution
otherwise. WEBSHARE_PROXY_URL must be set as an Actor env var /
secret in Apify Console for cloud runs — it is not forwarded from
local .env.
Hydration: the search-results page's DeferredSearchResults
GraphQL response (~1.7MB) wasn't reliably landing inside the previous
fixed 6s post-load wait — cloud QA captured a 133-char mid-load body
("Searching thousands of properties"). Replaced the blind
page.wait_for_timeout(...) with wait_for_search_results, which
polls for either a captured GraphQL response or the results-card DOM
selector, capped at a 25s timeout, before falling through to the
existing GraphQL-first/DOM-fallback extraction.
0.0 — 2026-08-11
Scaffolded skeleton (T01). Not yet a working scraper — see
docs/specs/vrbo-vacation-rentals-scraper/tasks.md for the build
order (T04 Camoufox infra proof is the next hard gate).