Turn euroauctions.com into a recurring source of construction-equipment leads and resale benchmarks. Capture hammer prices, hours and full specs to qualify buyers, sellers and undervalued lots across the European auction circuit.
Changelog — Euro Auctions Scraper — Europe Construction Equipment
2026-09-18 — build FTP-28: E1, E2, E3
T7 (push 2026-09-18): pot_motor/tipo_motor en preloaded_sold/live ahora hacen fallback a title cuando description viene vacia (categoria engines: 0/10 -> deteccion cuando el dato de potencia vive en el titulo del lote, no en la descripcion).
T6 (push 2026-09-18): mapper ftp28 whitelist 31 claves (extras -> ext_*); preloaded_sold ya no usa literal "past-auction"; tipo="auction" via fallback a mc_code cuando no hay categoria real (categoria queda None).
0.10.14 — 2026-09-08 (tag latest)
Corregido
ref_anunciante vuelve a llevar el auction ID (formato de agosto), en las dos ramas
(inventario activo y subastas cerradas). Decisión de David 2026-09-08: el pipeline del
cliente está escrito contra el formato de agosto y esperaba el ID ahí. El valor sigue
duplicado en ext_auction_id. Revierte el vaciado introducido en 0.10 sin perder el ext_.
Desplegado en Apify como build 0.10.14 vía API.
0.10 — 2026-08-25 (tag beta, sin promocionar)
Corregido
ref_anunciante pasa a None. Contenía el identificador de la subasta, no del vendedor:
49 valores distintos para 80.522 lotes al 100% de cobertura. 1031 es
Leeds - 8th, 9th, 10th & 11th July 2026. En cualquier tabla resumen lucía como el mejor dato
del perímetro mientras decía la fecha del evento.
En Euro Auctions el vendedor es la propia casa de subastas; el consignatario no se publica.
ext_auction_id añadido a la rama de subastas cerradas. Solo existía en la de inventario
activo, así que vaciar ref_anunciante allí habría borrado el identificador sin dejar nada.
Añadido
_snapshot_dataset_name en las dos ramas, con los tres puntos de publicación de puntero
protegidos. El del inventario activo estaba sin proteger: una prueba en esa modalidad habría
repuntado el snapshot del cliente igual.
_admin_snapshot y _snapshot_dataset_name declarados en el input schema.
Por qué NO se ha promocionado
ref_anunciante pasa de 100% a 0%. El dato no se pierde —está en ext_auction_id— pero si
el cliente mira cobertura verá un campo caer a cero de un mes para otro, y si algo de su ingesta
lo usa como clave, se rompe. Hay que avisarlo antes.
Nota de plataforma: el actor estaba en el límite de 10 versiones. Se borró la v0.0 —vacía—
para crear ésta. Quedan tres versiones dev obsoletas por limpiar.
Formato: que cambio, por que, y la medicion que lo respalda. Un cambio sin numero detras es
una opinion; en este repo no cuenta como entrada de changelog.
Las versiones son las de Apify (mayor.menor). La plataforma no admite numero de parche.
[0.9] — 19 de agosto de 2026
Corregido — el volcado superaba el limite de payload y corrompia el puntero
Un push de 9.453.568 bytes contra el limite de 9.437.184 mataba el hilo. El run seguia
reportando exito y dejaba el puntero en 6.559 registros sobre un dataset de 20.702. Ahora el
volcado va en lotes de 500 y el hilo marca fallo, con Actor.fail().
Reconstruido — el historico de subastas cerradas
De 12 subastas recogidas a 240 de 240. Maestro consolidado: 422.893 registros, con precio de
cierre en el 100%.
Pendiente — sin ruta de entrada para las cerradas
run_preloaded(inp) resuelve siempre el puntero del inventario activo; pastAuctions: true
solo afecta al raspado en vivo. Quien pide las cerradas recibe el inventario activo, correctamente
formateado y sin ningun aviso. Es la unica de las dieciseis bases que no pasa la puerta de calidad.
Ademas activeOnly vale True por defecto y descarta cualquier item con precio de cierre — justo
los que forman el historico. El arreglo es el patron que ya usan Surplex y RB Auction:
run_preloaded(inp, pointer_key=...) elegido en el dispatch.
Pendiente — el puntero de cerradas apunta solo al mes
euroauctions-scraper-past resuelve a euroauctions-scraper-past-2026-08 (80.522), no al historico
consolidado de 422.893.
0.10 — builds 0.10.6 a 0.10.10 — 2026-08-29
Corregido — QA: actor marcado "Under maintenance"
El prefill de input_schema.json tenía dos problemas que hacían fallar el 100% de los tests
automáticos de Apify:
data_freshness: "live" forzaba un raspado en vivo innecesario para la validación de QA.
proxyConfiguration: { useApifyProxy: false } dejaba la petición sin proxy. La API de
Euro Auctions devuelve HTTP 403 desde IPs de datacenter; sin proxy residencial o de Apify,
todos los runs de QA fallaban.
Corregido: data_freshness prefill → "preloaded", proxyConfiguration prefill →
{ useApifyProxy: true }. El pretest de QA pasa en 3.9 s, 10 items, $0.0000.
Añadido — proxy residencial Decodo (Smartproxy)
Integración de Decodo como proxy primario, con Apify proxy como fallback:
Variable de entorno DECODO_PROXY (secreto, formato userid:password).
_get_decodo_proxy() construye la URL: http://user-{userid}-sessionduration-{min}:{pass}@gate.decodo.com:{port}.