Gå til indhold
AutoValue
28. august 2026 · Data Quality

Sommeren hvor vores annonceantal brød sammen: En dagbog fra crawlerens indre

AutoValue Editorial
Sommeren hvor vores annonceantal brød sammen: En dagbog fra crawlerens indre

De fleste dage holder jeg en fane åben, der bare viser kildeantal. Ikke det pæne — ingen diagrammer, ingen filtre, bare et tal ud for hver af de 1.375 sites, vi henter annoncer fra, og et tidsstempel for, hvornår hver af dem sidst meldte sig. De fleste dage er det kedeligt på den måde, infrastruktur skal være kedelig. Det var det ikke denne sommer, og jeg tror historien om, hvad der gik galt, er mere nyttig for dig som bilkøber end det meste af den "sådan køber du en brugt bil"-rådgivning, vi ellers kunne skrive. Den handler om, hvad "live data" egentlig betyder, når det, der fodrer det, er 1.375 separate websites, som ikke skylder dig noget.

Midt i juli: tallet jeg var stolt af

Midt i juli havde vi fået kilderegistret op på 1.190 kilder fordelt på 73 regioner — resultatet af nogle ugers oprydning i dubletter og døde links, som stille og roligt havde pustet vores eget tal op. Jeg husker, jeg tænkte, at 1.190 rigtige, indmeldte kilder var noget at være stolt af. Det er mange individuelle forhandlersites, rubrikannonce-tavler og auktionsfeeds, hver med sin egen HTML-struktur, sine egne rate limits, sin egen holdning til om en scraper er en kunde eller et angreb.

Så begyndte en efterslæbskampagne, vi havde kørt — en gennemgang af en venteliste på 683 kilder, der havde ligget udskudt i månedsvis, nogle blokerede, nogle bare aldrig bygget — at give resultater. Hen over anden halvdel af juli blev 274 af dem bygget og koblet til. Ved månedens udgang var det aktive antal oppe på 1.464. Det er den slags uge, man tager et screenshot af.

Først i august: 241 kilder, væk

Så kommer tallet, der ødelægger din uge: natten over gik 241 kilder ned i en degraderet tilstand. Ikke på grund af noget, vi gjorde — vores proxy-udbyders konto var udløbet på betalingssiden, og en stor del af vores trafik ruter gennem roterende IP'er netop for, at vi ikke bliver blokeret af sites, der rate-limiter scrapere. Ingen proxyer, ingen friske sider, ingen friske annoncer. Kilder melder ikke selv, at de er i stykker; de holder bare stille op med at levere nye data, mens deres gamle annoncer ligger der og ser aktuelle ud.

Det er den del, der ikke fremgår af noget annonceantal på nogen bilside, vores egen inklusive, medmindre man selv går på jagt: et "live" marked kan have forældede rækker liggende side om side med friske, og se identisk ud udefra. Vi lod nye crawl-udsendelser afhænge af en faktisk proxy-sundhedstjek, så en død pool ikke stille kunne forringe kvaliteten yderligere, og satte de dele af tidsplanen på pause, der ville have gjort det værre. Det er ikke glamourøst arbejde. Det er den slags, hvor det, hvis man aldrig hører om det, betyder, at nogen gjorde deres arbejde.

En sidebemærkning, for den er værd at sige ligeud: ethvert site, der hævder et fast, rundt annonceantal hver eneste dag, er enten ikke faktisk live, eller fortæller dig ikke om uger som denne.

Frysningen

Fornyelsen af proxyen fikserede det meste. Det, jeg ikke havde forventet, var, at selve crawleren låste sig fast et par uger senere — et deadlock i nedluknings-fasen, atten af nitten worker-tråde siddende i futex_wait, nul CPU-forbrug, i sammenlagt 75 timer. Intet nedbrud, ingen fejllog, der skreg op til nogen. Bare... ingenting skete, mens dashboardet blev ved med at vise det sidst gennemførte hold, som om det var aktuelt. Vi havde endnu ikke installeret en watchdog på netop den host, hvilket er den slags sætning, man kun skriver, efter det, den beskriver, allerede er sket for en én gang.

Vi byggede watchdog'en. Vi satte tidsplanen på pause, indtil proxyfornyelsen var bekræftet stabil, i stedet for at risikere, at en halvt degraderet crawl stille erstattede gode rækker med dårlige — en crawlet kilde får sine annoncer erstattet, ikke sammenflettet, så et dårligt hold ikke bare undlader at tilføje data, det kan aktivt slette gode rækker og sætte dårligere i stedet. Den asymmetri er grunden til, at vi hellere kører forældet i en dag end kører degraderet.

Hvor tallet landede

Her er antallet i dag, og formen på de seks uger, der bragte os hertil:

Vi landede på 1.375 kilder fordelt på 73 regioner, der fodrer 1.108.535 live annoncer, hvoraf 12.823 aktuelt er markeret som prissat under deres regionale kohorte. Det er cirka 90 færre kilder end julitoppen — nogle af de 241 degraderede kom aldrig helt tilbage, en håndfuld var sites, der i mellemtiden havde ændret deres anti-bot-holdning og skulle genbygges frem for blot genforbindes. Vi arbejder stadig på et par af dem.

Hvad det egentlig er værd for dig

Intet af dette ændrer, hvilken bil du bør købe. Men det bør ændre, hvordan du læser ethvert "live lager"-tal på enhver bilside, ikke kun vores. Frankrig ligger lige nu øverst i vores regionale optælling med 67.569 annoncer, Japan tæt efter med 61.940, og de tal bevæger sig — ikke fordi selve brugtbilmarkedet svinger så hurtigt, men fordi infrastrukturen, der overvåger det, gør. En annonce, der er tre dage forældet, fordi en kilde var degraderet, ser præcis ud som en frisk en, medmindre platformen er ærlig om forskellen.

Vi vil hellere fortælle dig om de 75 timers frysning end lade som om, vores tal aldrig vakler. Et datasæt, der aldrig indrømmer en dårlig uge, er et datasæt, du bør være mere mistænksom over for, ikke mindre.

Data QualityWEB ScrapingMethodologyTransparencyMarket Data
Del

Relaterede artikler