Μετάβαση στο περιεχόμενο
AutoValue
28 Αυγούστου 2026 · Data Quality

Το Καλοκαίρι που «Έσπασε» ο Αριθμός των Καταχωρίσεών μας: Ημερολόγιο από τα Έγκατα του Crawler

AutoValue Editorial
Το Καλοκαίρι που «Έσπασε» ο Αριθμός των Καταχωρίσεών μας: Ημερολόγιο από τα Έγκατα του Crawler

Τις περισσότερες μέρες κρατάω ανοιχτή μια καρτέλα που απλώς δείχνει τον αριθμό των πηγών μας. Τίποτα το εντυπωσιακό — χωρίς γραφήματα, χωρίς φίλτρα, απλώς έναν αριθμό δίπλα σε κάθε μία από τις 1.375 ιστοσελίδες από τις οποίες αντλούμε καταχωρίσεις, και μια χρονοσφραγίδα του πότε έκανε τελευταία «αναφορά». Τις περισσότερες μέρες είναι βαρετό, με τον τρόπο που πρέπει να είναι βαρετή η υποδομή. Αυτό το καλοκαίρι δεν ήταν, και πιστεύω πως η ιστορία του τι πήγε στραβά είναι πιο χρήσιμη για εσάς, ως κάποιον που ψάχνει αυτοκίνητο, από τις περισσότερες συμβουλές τύπου «πώς να αγοράσετε μεταχειρισμένο» που θα μπορούσαμε να γράψουμε αντ' αυτού. Είναι μια ιστορία για το τι σημαίνει στην πραγματικότητα «δεδομένα σε πραγματικό χρόνο» όταν αυτό που τα τροφοδοτεί είναι 1.375 ξεχωριστές ιστοσελίδες που δεν σας χρωστάνε τίποτα.

Μέσα Ιουλίου: ο αριθμός για τον οποίο ήμουν περήφανος

Μέχρι τα μέσα Ιουλίου είχαμε ανεβάσει το μητρώο πηγών σε 1.190 πηγές σε 73 περιφέρειες — αποτέλεσμα μερικών εβδομάδων συμφιλίωσης διπλών εγγραφών και νεκρών συνδέσμων που είχαν φουσκώσει, χωρίς να το καταλάβουμε, τον δικό μας αριθμό. Θυμάμαι να σκέφτομαι ότι το να έχεις 1.190 πραγματικές, ενεργές πηγές ήταν κάτι για το οποίο άξιζε να είσαι περήφανος. Είναι πολλές μεμονωμένες ιστοσελίδες αντιπροσώπων, πίνακες μικρών αγγελιών και ροές δημοπρασιών, καθεμία με τη δική της δομή HTML, τα δικά της όρια ρυθμού αιτημάτων, τη δική της άποψη για το αν ένας scraper είναι πελάτης ή επίθεση.

Έπειτα, μια εκστρατεία διεκπεραίωσης παλαιότερων υποθέσεων που τρέχαμε — δουλεύοντας πάνω σε μια λίστα αναμονής 683 πηγών που παρέμεναν σε εκκρεμότητα για μήνες, κάποιες μπλοκαρισμένες, κάποιες απλώς ποτέ χτισμένες — άρχισε να αποδίδει. Στο δεύτερο μισό του Ιουλίου, 274 από αυτές χτίστηκαν και συνδέθηκαν. Μέχρι το τέλος του μήνα ο αριθμός των ενεργών πηγών είχε ανέβει στις 1.464. Είναι από αυτές τις εβδομάδες που κάνεις screenshot.

Αρχές Αυγούστου: 241 πηγές, χάθηκαν

Και μετά ήρθε ο αριθμός που σου χαλάει την εβδομάδα: μέσα σε μια νύχτα, 241 πηγές έπεσαν σε υποβαθμισμένη κατάσταση. Όχι εξαιτίας κάποιου δικού μας λάθους — ο λογαριασμός του παρόχου proxy μας είχε λήξει στο κομμάτι της χρέωσης, και ένα τεράστιο κομμάτι της κίνησής μας δρομολογείται μέσω εναλλασσόμενων IP ακριβώς για να μη μας μπλοκάρουν οι ιστοσελίδες που περιορίζουν τους scrapers. Χωρίς proxies, καμία φρέσκια σελίδα, καμία φρέσκια καταχώριση. Οι πηγές δεν ανακοινώνουν ότι έχουν χαλάσει· απλώς σταματούν σιωπηλά να επιστρέφουν νέα δεδομένα, ενώ οι παλιές τους καταχωρίσεις κάθονται εκεί δείχνοντας σαν να είναι επίκαιρες.

Αυτό είναι το κομμάτι που δεν φαίνεται σε έναν αριθμό καταχωρίσεων σε καμία ιστοσελίδα αυτοκινήτων, ούτε καν στη δική μας, εκτός αν ψάξεις επίτηδες: μια «ζωντανή» αγορά μπορεί να έχει μπαγιάτικες γραμμές δίπλα σε φρέσκιες και να φαίνεται πανομοιότυπη απ' έξω. Δέσαμε τις νέες αποστολές crawl με μια πραγματική δοκιμή υγείας των proxy, ώστε μια νεκρή δεξαμενή να μην μπορεί να υποβαθμίσει σιωπηλά ακόμα περισσότερο την ποιότητα, και παγώσαμε τα τμήματα του προγράμματος που θα το χειροτέρευαν. Δεν είναι εντυπωσιακή δουλειά. Είναι το είδος της δουλειάς που, αν ποτέ δεν ακούσεις γι' αυτήν, σημαίνει ότι κάποιος έκανε καλά τη δουλειά του.

Μια παρένθεση, γιατί αξίζει να ειπωθεί ξεκάθαρα: κάθε ιστοσελίδα που ισχυρίζεται πως έχει σταθερό, στρογγυλεμένο αριθμό καταχωρίσεων κάθε μέρα, ή δεν είναι πραγματικά ζωντανή, ή απλώς δεν σου λέει για εβδομάδες σαν κι αυτή.

Το πάγωμα

Η ανανέωση των proxy διόρθωσε το μεγαλύτερο μέρος του προβλήματος. Αυτό που δεν περίμενα ήταν να «κολλήσει» ο ίδιος ο crawler λίγες εβδομάδες αργότερα — ένα deadlock κατά την αποσυναρμολόγηση (teardown), με δεκαοκτώ από τα δεκαεννέα worker threads κολλημένα σε futex_wait, μηδενική κατανάλωση CPU, για 75 συνεχόμενες ώρες. Καμία κατάρρευση, κανένα μήνυμα σφάλματος να ουρλιάζει σε κανέναν. Απλώς... τίποτα δεν συνέβαινε, ενώ το dashboard συνέχιζε να δείχνει το τελευταίο επιτυχημένο πέρασμα σαν να ήταν επίκαιρο. Δεν είχαμε ακόμα εγκαταστήσει έναν watchdog σε εκείνον τον συγκεκριμένο υπολογιστή-διακομιστή, κάτι που είναι το είδος της πρότασης που γράφεις μόνο αφού το πράγμα που περιγράφει σου έχει ήδη συμβεί μία φορά.

Χτίσαμε τον watchdog. Παγώσαμε το πρόγραμμα μέχρι να επιβεβαιωθεί ότι η ανανέωση των proxy ήταν σταθερή, αντί να ρισκάρουμε ένα μισο-υποβαθμισμένο crawl να αντικαταστήσει σιωπηλά καλές γραμμές με κακές — μια πηγή που έχει σαρωθεί βλέπει τις καταχωρίσεις της να αντικαθίστανται, όχι να συγχωνεύονται, οπότε ένα κακό πέρασμα δεν αποτυγχάνει απλώς να προσθέσει δεδομένα, μπορεί ενεργά να διαγράψει καλές γραμμές και να βάλει χειρότερες στη θέση τους. Αυτή η ασυμμετρία είναι ο λόγος που προτιμάμε να τρέξουμε με μπαγιάτικα δεδομένα για μια μέρα παρά να τρέξουμε υποβαθμισμένοι.

Πού κατέληξε ο αριθμός

Ορίστε ο αριθμός σήμερα, και το σχήμα των έξι εβδομάδων που μας έφεραν ως εδώ:

Καταλήξαμε σε 1.375 πηγές σε 73 περιφέρειες, τροφοδοτώντας 1.108.535 ενεργές καταχωρίσεις, με 12.823 να επισημαίνονται αυτή τη στιγμή ως τιμολογημένες κάτω από τον περιφερειακό τους μέσο όρο. Αυτό είναι περίπου 90 πηγές λιγότερες από την κορύφωση του Ιουλίου — κάποιες από τις 241 υποβαθμισμένες δεν επέστρεψαν ποτέ πλήρως, μερικές ήταν ιστοσελίδες που είχαν αλλάξει εν τω μεταξύ τη στάση τους απέναντι στα anti-bot συστήματα και χρειάζονταν επανασχεδιασμό αντί για απλή επανασύνδεση. Ακόμα δουλεύουμε πάνω σε μερικές από αυτές.

Τι αξίζει αυτό στην πράξη για εσάς

Τίποτα από όλα αυτά δεν αλλάζει ποιο αυτοκίνητο θα έπρεπε να αγοράσετε. Αλλά θα έπρεπε να αλλάξει το πώς διαβάζετε οποιονδήποτε αριθμό «ζωντανού αποθέματος» σε οποιαδήποτε ιστοσελίδα αυτοκινήτων, όχι μόνο στη δική μας. Η Γαλλία βρίσκεται αυτή τη στιγμή στην κορυφή του περιφερειακού μας αριθμού με 67.569 καταχωρίσεις, με την Ιαπωνία να ακολουθεί από κοντά με 61.940, και αυτοί οι αριθμοί κινούνται — όχι επειδή η ίδια η αγορά μεταχειρισμένων αλλάζει τόσο γρήγορα, αλλά επειδή η υποδομή που την παρακολουθεί αλλάζει. Μια καταχώριση που είναι τριών ημερών μπαγιάτικη επειδή μια πηγή ήταν υποβαθμισμένη φαίνεται ακριβώς σαν μια φρέσκια, εκτός αν η πλατφόρμα είναι ειλικρινής για τη διαφορά.

Προτιμάμε να σας πούμε για το πάγωμα των 75 ωρών παρά να προσποιηθούμε ότι ο αριθμός μας ποτέ δεν ταλαντεύεται. Ένα σύνολο δεδομένων που ποτέ δεν παραδέχεται μια κακή εβδομάδα είναι ένα σύνολο δεδομένων που θα έπρεπε να σας κάνει πιο καχύποπτους, όχι λιγότερο.

Data QualityWEB ScrapingMethodologyTransparencyMarket Data
Κοινοποίηση

Σχετικά άρθρα