Ugrás a tartalomra
AutoValue
2026. augusztus 28. · Data Quality

A nyár, amikor összeomlott a hirdetésszámunk: napló a crawlerünk belsejéből

AutoValue Editorial
A nyár, amikor összeomlott a hirdetésszámunk: napló a crawlerünk belsejéből

A legtöbb napon van nyitva egy fülem, ami csak a forrásonkénti darabszámokat mutatja. Semmi cifraság — se diagram, se szűrő, csak egy szám az 1 375 oldal mindegyike mellett, ahonnan a hirdetéseket lehúzzuk, meg egy időbélyeg, hogy mikor jelentkezett be utoljára. A legtöbb napon annyira unalmas, amennyire egy infrastruktúrának lennie kell. Ezen a nyáron nem volt az, és úgy gondolom, hogy a történet arról, mi ment félre, hasznosabb neked, mint autóvásárlónak, mint a legtöbb „hogyan vegyél használt autót” tanács, amit ehelyett írhatnánk. Arról szól, mit is jelent valójában az „élő adat”, amikor azt, ami táplálja, 1 375 különálló weboldal szolgáltatja, amelyek semmivel sem tartoznak neked.

Július közepe: a szám, amire büszke voltam

Július közepére 1 190 forrásra toltuk fel a forrásregiszterünket 73 régióban — ez néhány hetes munka eredménye volt, amíg átnéztük a duplikált bejegyzéseket és a halott linkeket, amelyek csendben felfújták a saját számunkat. Emlékszem, arra gondoltam, hogy 1 190 valódi, bejelentkező forrás büszkeségre ad okot. Ez rengeteg egyedi kereskedői oldal, apróhirdetési tábla és aukciós feed, mindegyiknek saját HTML-szerkezetével, saját sebességkorlátaival, saját véleményével arról, hogy egy scraper ügyfél-e vagy támadás.

Aztán egy elmaradt kampány, amit már hetek óta futtattunk — egy 683 forrásból álló várólista feldolgozása, amely hónapok óta halasztva várakozott, némelyik blokkolva, némelyik egyszerűen sosem lett megépítve —, kezdett beérni. Július második felében ezekből 274-et megépítettünk és bekötöttünk. A hónap végére a működő szám 1 464-re nőtt. Ez az a fajta hét, amiről képernyőképet készítesz.

Augusztus eleje: 241 forrás, eltűnt

Aztán jött a szám, ami tönkreteszi a heted: egyik napról a másikra 241 forrás esett degradált állapotba. Nem azért, mert mi csináltunk valamit — a proxyszolgáltatónk fiókja lejárt a számlázás oldalán, a forgalmunk óriási részét pedig forgó IP-címeken keresztül vezetjük pontosan azért, hogy ne blokkoljanak minket azok az oldalak, amelyek korlátozzák a scrapereket. Nincs proxy, nincs friss oldal, nincs friss hirdetés. A források nem jelentik be, hogy elromlottak; egyszerűen csendben abbahagyják az új adatok visszaadását, miközben a régi hirdetéseik ott ülnek és aktuálisnak tűnnek.

Ez az a rész, ami egyetlen autós oldal hirdetésszámában sem jelenik meg, a miénkében sem, hacsak nem keresed kifejezetten: egy „élő” piactéren elavult sorok ülhetnek a friss sorok mellett, és kívülről nézve egyformának tűnnek. Az új crawlolási feladatokat egy tényleges proxy-egészségügyi próbához kötöttük, hogy egy halott készlet ne tudja csendben tovább rontani a minőséget, és szüneteltettük az ütemezés azon részeit, amelyek csak rontottak volna a helyzeten. Nem egy csillogó munka. Az a fajta dolog, amiről ha sosem hallasz, az azt jelenti, hogy valaki elvégezte a dolgát.

Egy közbevetés, mert érdemes kimondani: bármely oldal, amely minden áldott nap egy fix, kerek hirdetésszámot állít, vagy valójában nem élő, vagy nem mondja el neked az ilyen hetekről.

A lefagyás

A proxy megújítása a probléma nagy részét megoldotta. Amire nem számítottam, az az volt, hogy maga a crawler néhány héttel később lefagyott — egy leállítási holtpont, tizenkilencből tizennyolc worker-szál futex_wait állapotban ült, nulla CPU-terheléssel, 75 órán át folyamatosan. Nincs összeomlás, nincs hibanapló, ami bárkinek is kiabálna. Csak... semmi nem történt, miközben a műszerfal továbbra is az utolsó sikeres futást mutatta, mintha az lenne aktuális. Erre a konkrét gépre még nem telepítettünk watchdogot, ami az a fajta mondat, amit csak azután írsz le, hogy az általa leírt dolog már egyszer megtörtént veled.

Megépítettük a watchdogot. Szüneteltettük az ütemezést, amíg a proxy megújítása stabilnak nem bizonyult, ahelyett hogy kockáztattunk volna egy félig degradált crawlolást, amely csendben jó sorokat cserélt volna rosszakra — egy lecrawlolt forrás hirdetései lecserélődnek, nem összeolvadnak, szóval egy rossz futás nem csupán nem ad hozzá adatot, hanem aktívan törölhet jó sorokat, és rosszabbakat tehet a helyükre. Ez az aszimmetria az oka annak, hogy inkább futunk elavultan egy napig, mint degradáltan.

Hova jutott a szám

Íme a mai szám, és annak a hat hétnek az alakja, amely idáig vezetett:

1 375 forrásnál álltunk meg 73 régióban, amelyek 1 108 535 élő hirdetést táplálnak, ebből jelenleg 12 823-at jelöltünk meg a saját régiós csoportjuk átlagához képest alulárazottként. Ez nagyjából 90-nel kevesebb forrás a júliusi csúcsnál — a 241 degradált közül néhány sosem tért teljesen vissza, egy maroknyi pedig olyan oldal volt, amely időközben megváltoztatta a bot-elleni magatartását, és inkább újraépítést, mint egyszerű újracsatlakozást igényelt. Néhányon még mindig dolgozunk.

Amit ez valójában jelent neked

Ez semmit nem változtat azon, hogy melyik autót kellene megvenned. De meg kellene változtatnia azt, ahogyan bármely „élő készlet” számot olvasol bármelyik autós oldalon, nem csak a miénken. Franciaország áll jelenleg a régiós rangsorunk élén 67 569 hirdetéssel, szorosan mögötte Japán 61 940-nel, és ezek a számok mozognak — nem azért, mert maga a használtautó-piac ilyen gyorsan ingadozik, hanem mert az azt figyelő infrastruktúra igen. Egy hirdetés, amely három napja elavult, mert egy forrás degradálódott, pontosan úgy néz ki, mint egy friss, hacsak a platform nem őszinte a különbségről.

Inkább elmondjuk neked a 75 órás lefagyást, mintsem úgy tegyünk, mintha a számunk sosem ingadozna. Egy adathalmaz, amely sosem vall be egy rossz hetet, olyan, amivel szemben gyanakvóbbnak kellene lenned, nem kevésbé.

Data QualityWEB ScrapingMethodologyTransparencyMarket Data
Megosztás

Kapcsolódó cikkek