Scrape used-car listings from coches.net, Spain’s #1 car marketplace — price, make, model, year, mileage, fuel, power, transmission, environmental label, seller, location, and photos. Export to JSON or CSV; enrich each listing with extra detail-page fields.
Force-residential proxy guard: _resolve_proxy_configuration now always
injects RESIDENTIAL into apifyProxyGroups when the group is missing,
empty, or set to a datacenter-only group — preventing the HTTP 403 that
customers hit when running without residential proxy.
Fail-fast on proxy unavailable: if Actor.create_proxy_configuration raises
or returns None the Actor exits immediately with a clear RuntimeError
describing the required plan/config, rather than silently returning empty
results from datacenter exits.
country_code (apifyProxyCountry) preserved through the guard.
Updated models.py proxy field description and input_schema.json proxy
description to document the RESIDENTIAL requirement.
Added tests/test_proxy_guard.py with unit coverage for all guard branches.
0.3.0 — 2026-06-05
Config-refresh re-push: RESIDENTIAL proxy group explicitly set in both
input_schema.jsondefault and prefill so Apify auto-QA receives
residential exits rather than datacenter IPs, clearing the 403 / "Under
maintenance" trap triggered by DataDome-class anti-bot on coches.net.
No code changes — build is functionally identical to 0.2; only the
published proxy config is updated.
0.2.0 — 2026-06-03
Per-attempt proxy session rotation: each retry now opens a fresh AsyncSession
with a new session_id (new residential exit IP) and a randomly-picked
browser impersonation profile, defeating persistent IP/fingerprint blocks.
Removed the single static proxy URL resolved at startup; the ProxyConfiguration
object is now threaded through to the scraper for per-request fresh URLs.
Fixed DockerfileCMD to use python -m src (via __main__.py).