Přeskočit na obsah
AutoValue
28. srpna 2026 · Data Quality

Léto, kdy se náš počet inzerátů rozbil: deník zevnitř crawleru

AutoValue Editorial
Léto, kdy se náš počet inzerátů rozbil: deník zevnitř crawleru

Většinu dní mám otevřenou záložku, která ukazuje jenom počty zdrojů. Nic hezkého — žádné grafy, žádné filtry, jen číslo u každého z 1 375 webů, ze kterých stahujeme inzeráty, a časové razítko, kdy se který naposledy ozval. Většinu dní je to nudné tak, jak infrastruktura nudná být má. Tohle léto nebylo a myslím, že příběh toho, co se pokazilo, je pro vás jako pro někoho, kdo shání auto, užitečnější než většina rad typu „jak koupit ojeté auto", které bychom mohli napsat místo toho. Je o tom, co „živá data" ve skutečnosti znamenají, když věc, která je napájí, je 1 375 samostatných webů, které vám nic nedluží.

Polovina července: číslo, na které jsem byl hrdý

V polovině července jsme dostali registr zdrojů na 1 190 zdrojů napříč 73 regiony — výsledek několika týdnů slaďování duplicitních záznamů a mrtvých odkazů, které si potichu nafukovaly naše vlastní číslo. Pamatuju si, jak jsem si myslel, že 1 190 skutečných, ozývajících se zdrojů je něco, na co je možné být hrdý. To je hodně jednotlivých dealerských webů, inzertních desek a aukčních feedů, každý s vlastní strukturou HTML, vlastními rate limity, vlastním názorem na to, jestli je scraper zákazník, nebo útočník.

Pak se rozjela kampaň na zpracování dluhu, kterou jsme tehdy vedli — probírali jsme se čekací listinou 683 zdrojů, které měsíce ležely odložené, některé blokované, jiné jednoduše nikdy nepostavené. Ve druhé polovině července se z toho 274 podařilo postavit a zapojit. Do konce měsíce vzrostl funkční počet na 1 464. To je ten typ týdne, který si vyfotíte.

Začátek srpna: 241 zdrojů, pryč

Pak přišlo číslo, které vám zničí týden: přes noc se 241 zdrojů dostalo do degradovaného stavu. Ne kvůli něčemu, co jsme udělali my — účet u našeho poskytovatele proxy vypršel na straně fakturace a obrovská část našeho provozu jde přes rotující IP adresy právě proto, abychom nebyli blokováni weby, které omezují scrapery rate limity. Žádné proxy, žádné čerstvé stránky, žádné čerstvé inzeráty. Zdroje neoznamují, že jsou rozbité; prostě potichu přestanou vracet nová data, zatímco jejich staré inzeráty tam sedí a vypadají aktuálně.

Tohle je ta část, která se neobjeví v počtu inzerátů na žádném webu s auty, náš nevyjímaje, pokud po tom aktivně nepátráte: „živý" trh může mít zastaralé řádky sedící vedle čerstvých a zvenčí vypadat identicky. Nová zadávání crawlu jsme podmínili skutečnou kontrolou zdraví proxy, aby mrtvý pool nemohl potichu dál zhoršovat kvalitu, a pozastavili jsme části harmonogramu, které by to zhoršily ještě víc. Není to okouzlující práce. Je to ten typ věci, o které, když o ní nikdy neuslyšíte, znamená, že ji někdo odvedl.

Odbočka, protože stojí za to to říct otevřeně: každý web, který tvrdí, že má pevné, kulaté číslo inzerátů úplně každý den, buď ve skutečnosti není živý, nebo vám neříká o týdnech, jako byl tenhle.

Zamrznutí

Obnovení proxy vyřešilo většinu problémů. Co jsem nečekal, bylo, že se o pár týdnů později zasekne samotný crawler — deadlock při ukončování, osmnáct z devatenácti pracovních vláken sedících ve futex_wait, nulové vytížení CPU, a to 75 hodin v kuse. Žádný pád, žádný chybový záznam, který by na někoho křičel. Prostě... nic se nedělo, zatímco dashboard dál ukazoval poslední úspěšný průchod, jako by byl aktuální. Na tenhle konkrétní hostitel jsme ještě neměli nainstalovaného hlídacího psa, což je ten typ věty, kterou napíšete až poté, co se vám věc, kterou popisuje, už jednou stala.

Postavili jsme hlídacího psa. Pozastavili jsme harmonogram, dokud se nepotvrdilo, že obnovení proxy je stabilní, místo abychom riskovali, že napůl degradovaný crawl potichu nahradí dobré řádky špatnými — u zdroje, který projde crawlem, se inzeráty nahrazují, ne slučují, takže špatný průchod nejenže nepřidá data, ale může aktivně smazat dobré řádky a nahradit je horšími. Kvůli téhle asymetrii radši den běžíme se zastaralými daty, než abychom běželi degradovaně.

Kde číslo přistálo

Tady je dnešní počet a tvar šesti týdnů, které nás sem dovedly:

Přistáli jsme na 1 375 zdrojích napříč 73 regiony, které napájejí 1 108 535 živých inzerátů, přičemž 12 823 je aktuálně označeno jako podceněné vůči jejich regionální skupině. To je zhruba o 90 zdrojů méně než červencové maximum — část z 241 degradovaných se nikdy úplně nevrátila zpět, hrstka byly weby, které mezitím změnily svůj přístup k anti-bot ochraně a bylo potřeba je znovu postavit, ne jen znovu připojit. Na několika z nich ještě pracujeme.

Co to pro vás skutečně znamená

Nic z tohohle nemění, jaké auto byste si měli koupit. Ale mělo by to změnit, jak čtete jakékoli číslo „živého inventáře" na jakémkoli webu s auty, nejen na tom našem. Francie momentálně vede náš regionální počet se 67 569 inzeráty, těsně za ní je Japonsko s 61 940, a tahle čísla se hýbou — ne proto, že by se samotný trh s ojetými auty tak rychle měnil, ale protože se hýbe infrastruktura, která ho sleduje. Inzerát, který je tři dny starý, protože byl zdroj degradovaný, vypadá naprosto stejně jako čerstvý, pokud platforma není poctivá ohledně toho rozdílu.

Raději vám povíme o 75hodinovém zamrznutí, než abychom předstírali, že se naše číslo nikdy nezakolísá. Datová sada, která se nikdy nepřizná ke špatnému týdnu, je datová sada, ke které byste měli být podezřívavější, ne méně.

Data QualityWEB ScrapingMethodologyTransparencyMarket Data
Sdílet

Související články