सीधे सामग्री पर जाएँ
AutoValue
28 अगस्त 2026 · Data Quality

वह गर्मी जब हमारी लिस्टिंग गिनती टूट गई: क्रॉलर के भीतर से एक डायरी

AutoValue Editorial
वह गर्मी जब हमारी लिस्टिंग गिनती टूट गई: क्रॉलर के भीतर से एक डायरी

मैं ज़्यादातर दिन एक टैब खोले रखता हूँ जो सिर्फ़ स्रोत गिनती दिखाता है। कोई सुंदर चीज़ नहीं — न चार्ट, न फ़िल्टर, बस उन 1,375 साइटों में से हर एक के आगे एक नंबर जहाँ से हम लिस्टिंग खींचते हैं, और यह टाइमस्टैंप कि हर एक ने आख़िरी बार कब चेक-इन किया। ज़्यादातर दिन यह उतना ही उबाऊ होता है जितना इंफ्रास्ट्रक्चर को होना चाहिए। इस गर्मी में ऐसा नहीं था, और मुझे लगता है कि जो गड़बड़ हुई उसकी कहानी आपके लिए — एक कार ख़रीदने वाले के तौर पर — उन ज़्यादातर "पुरानी कार कैसे ख़रीदें" वाली सलाहों से कहीं ज़्यादा काम की है जो हम इसकी जगह लिख सकते थे। यह इस बारे में है कि "लाइव डेटा" का असल मतलब क्या होता है जब उसे खिलाने वाली चीज़ 1,375 अलग-अलग वेबसाइटें हों जिन पर आपका कोई हक़ नहीं।

जुलाई का मध्य: वह नंबर जिस पर मुझे गर्व था

जुलाई के मध्य तक हमने स्रोत रजिस्ट्री को 73 क्षेत्रों में फैले 1,190 स्रोतों तक पहुँचा दिया था — यह कुछ हफ़्तों की उस मेहनत का नतीजा था जिसमें डुप्लिकेट एंट्रीज़ और मरी हुई लिंक्स को सुलझाया गया था जो चुपचाप हमारी अपनी गिनती फुला रही थीं। मुझे याद है सोचा था कि 1,190 असली, चेक-इन किए हुए स्रोत गर्व करने लायक बात है। यह अपने आप में बहुत सारी अलग-अलग डीलर साइटें, क्लासिफ़ाइड्स बोर्ड्स, और नीलामी फ़ीड्स हैं, हर एक का अपना HTML ढांचा, अपनी रेट-लिमिट, और इस बारे में अपनी राय कि स्क्रेपर एक ग्राहक है या हमला।

फिर एक बैकलॉग कैम्पेन जो हम चला रहे थे — 683 स्रोतों की एक वेटलिस्ट पर काम, जो महीनों से टली हुई पड़ी थी, कुछ ब्लॉक थे, कुछ बस कभी बने ही नहीं — असर दिखाने लगा। जुलाई के दूसरे आधे हिस्से में उनमें से 274 बन गए और जोड़ दिए गए। महीने के अंत तक काम कर रहे स्रोतों की गिनती बढ़कर 1,464 हो गई। यह वैसा हफ़्ता है जिसका आप स्क्रीनशॉट ले लेते हैं।

अगस्त की शुरुआत: 241 स्रोत, ग़ायब

फिर वह नंबर आया जो पूरा हफ़्ता बर्बाद कर देता है: रातोंरात, 241 स्रोत ख़राब हालत में चले गए। हमने कुछ किया इसलिए नहीं — हमारे प्रॉक्सी प्रोवाइडर का अकाउंट बिलिंग की तरफ़ से लैप्स हो गया था, और हमारे ट्रैफ़िक का एक बड़ा हिस्सा घूमती हुई IP के ज़रिए ही जाता है, ख़ास तौर पर इसलिए ताकि उन साइटों से ब्लॉक न हों जो स्क्रेपर्स को रेट-लिमिट करती हैं। न प्रॉक्सी, न ताज़े पेज, न ताज़ी लिस्टिंग। स्रोत यह ऐलान नहीं करते कि वे टूट गए हैं; वे बस चुपचाप नया डेटा देना बंद कर देते हैं जबकि उनकी पुरानी लिस्टिंग वहीं पड़ी ताज़ा दिखती रहती हैं।

यह वह हिस्सा है जो किसी भी कार साइट की लिस्टिंग गिनती में नज़र नहीं आता, हमारी साइट भी शामिल, जब तक आप ख़ास तौर पर ढूँढने न जाएँ: एक "लाइव" मार्केटप्लेस में पुरानी पड़ चुकी पंक्तियाँ ताज़ा पंक्तियों के बग़ल में बैठ सकती हैं और बाहर से बिल्कुल एक जैसी दिख सकती हैं। हमने नए क्रॉल डिस्पैच को एक असली प्रॉक्सी हेल्थ प्रोब पर निर्भर बना दिया ताकि एक मरा हुआ पूल चुपचाप क्वालिटी को और न बिगाड़ सके, और शेड्यूल के उन हिस्सों को रोक दिया जो हालात और ख़राब कर देते। यह कोई चमकदार काम नहीं है। यह वह काम है जिसके बारे में, अगर आप कभी सुनते ही नहीं, तो इसका मतलब है कि किसी ने अपना काम ठीक से किया।

एक बात अलग से, क्योंकि इसे साफ़ कह देना ज़रूरी है: कोई भी साइट जो हर दिन एक तय, गोल-मटोल लिस्टिंग नंबर होने का दावा करती है, वह या तो सच में लाइव नहीं है, या फिर वह आपको इस जैसे हफ़्तों के बारे में नहीं बता रही।

वह ठहराव

प्रॉक्सी रिन्यूअल ने ज़्यादातर मामला सुलझा दिया। जो मैंने उम्मीद नहीं की थी वह यह कि कुछ हफ़्तों बाद ख़ुद क्रॉलर ही लॉक हो गया — एक टियरडाउन डेडलॉक, उन्नीस में से अठारह वर्कर थ्रेड futex_wait में बैठे रहे, ज़ीरो CPU इस्तेमाल हुआ, लगातार 75 घंटों तक। न कोई क्रैश, न कोई एरर लॉग जो किसी को चिल्लाकर बताए। बस... कुछ नहीं हो रहा था, जबकि डैशबोर्ड आख़िरी सफल पास को यूँ दिखाता रहा जैसे वह अभी का हो। हमने उस ख़ास होस्ट पर वॉचडॉग अभी लगाई ही नहीं थी — यह वह तरह का वाक्य है जो आप तभी लिखते हैं जब वह चीज़ जिसका यह वर्णन करता है आपके साथ पहले ही एक बार हो चुकी हो।

हमने वॉचडॉग बना दी। हमने शेड्यूल को तब तक रोके रखा जब तक प्रॉक्सी रिन्यूअल स्थिर होने की पुष्टि नहीं हो गई, बजाय इसके कि आधे-अधूरे ख़राब क्रॉल का जोखिम लें जो चुपचाप अच्छी पंक्तियों को ख़राब पंक्तियों से बदल दे — क्रॉल किया गया स्रोत अपनी लिस्टिंग बदलवाता है, न कि जोड़ता है, इसलिए एक ख़राब पास सिर्फ़ डेटा जोड़ने में नाकाम नहीं होता, बल्कि यह सक्रिय रूप से अच्छी पंक्तियों को मिटाकर उनकी जगह बदतर पंक्तियाँ रख सकता है। यही असंतुलन है जिस वजह से हम एक दिन पुराना डेटा दिखाना पसंद करेंगे बजाय ख़राब डेटा चलाने के।

नंबर कहाँ जाकर टिका

यह रहा आज का आँकड़ा, और उन छह हफ़्तों की तस्वीर जो हमें यहाँ तक लाई:

हम 73 क्षेत्रों में फैले 1,375 स्रोतों पर आकर टिके, जो 1,108,535 लाइव लिस्टिंग को खिला रहे हैं, जिनमें से 12,823 फ़िलहाल अपने क्षेत्रीय समूह की तुलना में कम क़ीमत पर चिह्नित हैं। यह जुलाई के शिखर से लगभग 90 स्रोत कम है — 241 ख़राब हुए स्रोतों में से कुछ कभी पूरी तरह वापस नहीं आए, कुछ मुट्ठी भर ऐसी साइटें थीं जिन्होंने इस बीच अपना एंटी-बॉट रवैया बदल लिया था और उन्हें दोबारा जोड़ने के बजाय फिर से बनाना पड़ा। हम अभी भी उनमें से कुछ पर काम कर रहे हैं।

यह आपके लिए असल में क्या मायने रखता है

इनमें से कुछ भी यह नहीं बदलता कि आपको कौन सी कार ख़रीदनी चाहिए। लेकिन इसे यह ज़रूर बदल देना चाहिए कि आप किसी भी कार साइट पर — सिर्फ़ हमारी साइट पर नहीं — किसी "लाइव इन्वेंटरी" नंबर को कैसे पढ़ते हैं। फ़्रांस अभी हमारी क्षेत्रीय गिनती में सबसे ऊपर है, 67,569 लिस्टिंग के साथ, जापान 61,940 के साथ करीब पीछे, और ये नंबर हिलते-डुलते हैं — इसलिए नहीं कि पुरानी कारों का बाज़ार ख़ुद इतनी तेज़ी से बदलता है, बल्कि इसलिए कि उसे देखने वाला इंफ्रास्ट्रक्चर बदलता है। एक लिस्टिंग जो तीन दिन पुरानी हो चुकी है क्योंकि कोई स्रोत ख़राब हो गया था, बिल्कुल ताज़ा लिस्टिंग जैसी ही दिखती है, जब तक कि प्लेटफ़ॉर्म इस फ़र्क़ के बारे में ईमानदार न हो।

हम आपको यह बताना पसंद करेंगे कि 75 घंटे का ठहराव हुआ था, बजाय इसका दिखावा करने के कि हमारा नंबर कभी डगमगाता ही नहीं। जो डेटासेट कभी किसी बुरे हफ़्ते को क़बूल नहीं करता, उस पर आपको कम नहीं, बल्कि ज़्यादा शक करना चाहिए।

Data QualityWEB ScrapingMethodologyTransparencyMarket Data
साझा करें

संबंधित लेख