Przejdź do treści
AutoValue
28 sierpnia 2026 · Data Quality

Lato, w którym padła nasza liczba ogłoszeń: dziennik z wnętrza crawlera

AutoValue Editorial
Lato, w którym padła nasza liczba ogłoszeń: dziennik z wnętrza crawlera

Przez większość dni trzymam otwartą zakładkę, która pokazuje po prostu liczby źródeł. Nic efektownego — żadnych wykresów, żadnych filtrów, tylko liczba przy każdej z 1,375 witryn, z których pobieramy ogłoszenia, oraz znacznik czasu ostatniego zgłoszenia się każdej z nich. Przez większość dni jest to nudne tak, jak infrastruktura powinna być nudna. Tego lata nie było, i sądzę, że historia tego, co poszło nie tak, jest dla Ciebie, jako osoby szukającej samochodu, bardziej użyteczna niż większość porad „jak kupić samochód używany", które moglibyśmy napisać zamiast tego. Chodzi o to, co „dane na żywo" właściwie oznaczają, gdy tym, co je zasila, jest 1,375 osobnych witryn, które nic Ci nie są winne.

Połowa lipca: liczba, z której byłem dumny

Do połowy lipca doprowadziliśmy rejestr źródeł do 1,190 źródeł w 73 regionach — efekt kilku tygodni porządkowania duplikatów i martwych linków, które po cichu zawyżały naszą własną liczbę. Pamiętam, że myślałem wtedy, iż 1,190 realnych, aktywnie zgłaszających się źródeł to powód do dumy. To mnóstwo pojedynczych witryn dealerskich, tablic ogłoszeniowych i kanałów aukcyjnych, z których każda ma własną strukturę HTML, własne limity zapytań i własne zdanie na temat tego, czy scraper jest klientem, czy atakiem.

Potem zaczęła przynosić efekty kampania nadrabiania zaległości, którą prowadziliśmy — przerabianie listy oczekujących 683 źródeł, które od miesięcy czekały odłożone na później, część zablokowana, część po prostu nigdy niezbudowana. W drugiej połowie lipca 274 z nich zostało zbudowanych i podłączonych. Pod koniec miesiąca liczba działających źródeł wzrosła do 1,464. To jeden z tych tygodni, które chce się uwiecznić zrzutem ekranu.

Początek sierpnia: 241 źródeł, które zniknęły

A potem liczba, która rujnuje cały tydzień: z dnia na dzień 241 źródeł przeszło w stan degradacji. Nie z naszej winy — konto u naszego dostawcy proxy wygasło od strony rozliczeniowej, a ogromna część naszego ruchu jest kierowana przez rotujące adresy IP właśnie po to, żeby nie zostać zablokowanym przez witryny, które ograniczają ruch scraperów. Bez proxy nie ma nowych stron, nie ma nowych ogłoszeń. Źródła nie informują, że się zepsuły — po prostu po cichu przestają zwracać nowe dane, podczas gdy ich stare ogłoszenia dalej wyglądają na aktualne.

To jest ta część, której nie widać w liczbie ogłoszeń na żadnym serwisie motoryzacyjnym, naszym również, chyba że celowo się jej szuka: „aktywny" rynek może mieć nieświeże wiersze siedzące obok świeżych i z zewnątrz wyglądać identycznie. Uzależniliśmy uruchamianie nowych przebiegów crawlera od realnego testu kondycji proxy, żeby martwa pula nie mogła po cichu dalej obniżać jakości danych, i wstrzymaliśmy te części harmonogramu, które tylko pogorszyłyby sytuację. To nie jest efektowna praca. To jest właśnie ten rodzaj pracy, o którym — jeśli nigdy o nim nie słyszysz — oznacza, że ktoś dobrze wykonał swoje zadanie.

Dygresja, bo warto powiedzieć to wprost: każda strona, która codziennie podaje stałą, okrągłą liczbę ogłoszeń, albo tak naprawdę nie działa na żywo, albo nie mówi Ci o tygodniach takich jak ten.

Zawieszenie

Odnowienie proxy naprawiło większość problemu. Czego nie przewidziałem, to że kilka tygodni później zawiesi się sam crawler — zakleszczenie (deadlock) przy zamykaniu procesów, osiemnaście z dziewiętnastu wątków roboczych utknęło w futex_wait, zero zużycia CPU, przez 75 godzin bez przerwy. Żadnej awarii, żadnego logu błędów krzyczącego do kogokolwiek. Po prostu... nic się nie działo, podczas gdy panel dalej pokazywał ostatni udany przebieg, jakby był aktualny. Na tym konkretnym hoście nie mieliśmy jeszcze zainstalowanego watchdoga — to zdanie, które pisze się dopiero wtedy, gdy opisywana rzecz już raz się przydarzyła.

Zbudowaliśmy watchdoga. Wstrzymaliśmy harmonogram, dopóki nie potwierdziliśmy stabilności odnowionego proxy, zamiast ryzykować, że częściowo zdegradowany przebieg po cichu zastąpi dobre wiersze złymi — źródło objęte crawlem ma swoje ogłoszenia zastępowane, a nie scalane, więc nieudany przebieg nie tylko nie dodaje danych, ale może aktywnie usunąć dobre wiersze i wstawić na ich miejsce gorsze. Ta asymetria jest powodem, dla którego wolimy przez dzień działać na nieświeżych danych, niż działać w trybie zdegradowanym.

Gdzie wylądowała liczba

Oto dzisiejsza liczba oraz przebieg sześciu tygodni, które do niej doprowadziły:

Wylądowaliśmy na 1,375 źródłach w 73 regionach, zasilających 1,108,535 aktywnych ogłoszeń, z czego 12,823 jest obecnie oznaczonych jako wycenione poniżej poziomu swojej regionalnej grupy porównawczej. To około 90 źródeł mniej niż lipcowy szczyt — część z 241 zdegradowanych nigdy w pełni nie wróciła do gry, garstka to witryny, które w międzyczasie zmieniły swoje zabezpieczenia antybotowe i wymagały odbudowy, a nie tylko ponownego połączenia. Nad kilkoma wciąż pracujemy.

Co to naprawdę dla Ciebie znaczy

Nic z tego nie zmienia tego, jaki samochód powinieneś kupić. Powinno jednak zmienić sposób, w jaki czytasz każdą liczbę „dostępnych ogłoszeń na żywo" na dowolnej stronie motoryzacyjnej, nie tylko naszej. Francja zajmuje obecnie czołowe miejsce w naszym zestawieniu regionalnym z 67,569 ogłoszeniami, tuż za nią plasuje się Japonia z 61,940 — i te liczby się zmieniają, nie dlatego, że sam rynek samochodów używanych tak szybko się waha, ale dlatego, że robi to infrastruktura, która go obserwuje. Ogłoszenie, które jest nieświeże od trzech dni, bo źródło uległo degradacji, wygląda dokładnie tak samo jak świeże, o ile platforma nie jest uczciwa co do tej różnicy.

Wolimy opowiedzieć Ci o 75-godzinnym zawieszeniu, niż udawać, że nasza liczba nigdy nie drży. Zbiór danych, który nigdy nie przyznaje się do złego tygodnia, powinien budzić więcej podejrzeń, nie mniej.

Data QualityWEB ScrapingMethodologyTransparencyMarket Data
Udostępnij

Powiązane artykuły