Back to Blog

hh.ru, Superjob और LinkedIn से नौकरी की स्कैनिंग के लिए प्रॉक्सी: पूर्ण मार्गदर्शिका

जॉब बोर्ड्स के लिए प्रॉक्सी सेटअप पर विस्तृत गाइड: प्रॉक्सी के प्रकार का चयन, hh.ru और Superjob की सुरक्षा को बायपास करना, IP रोटेशन सेट करना और कैप्चा को संभालना।

📅March 12, 2026
```html

जॉब बोर्ड्स की पार्सिंग HR एनालिटिक्स, श्रम बाजार की निगरानी और रिक्रूटमेंट ऑटोमेशन के लिए डेटा संग्रह के सबसे अधिक मांग वाले परिदृश्यों में से एक है। लेकिन वैकेंसी साइटें स्वचालित डेटा संग्रह से सक्रिय रूप से खुद को बचाती हैं: 50-100 अनुरोधों के बाद IP को ब्लॉक कर देती हैं, कैप्चा दिखाती हैं और संदिग्ध अकाउंट्स को बैन कर देती हैं। इस लेख में हम समझेंगे कि बिना ब्लॉक के hh.ru, Superjob, LinkedIn और अन्य प्लेटफॉर्म्स की स्थिर पार्सिंग के लिए प्रॉक्सी को सही तरीके से कैसे सेटअप करें।

जॉब बोर्ड्स पार्सिंग को क्यों ब्लॉक करते हैं और सुरक्षा कैसे काम करती है

वैकेंसी साइटें पार्सिंग पर पैसे खो देती हैं: डेटा प्रतिस्पर्धियों को बेचा जाता है, बिना लाइसेंस के एग्रीगेटर बनाए जाते हैं, नियोक्ता पेड प्लेसमेंट को बायपास करते हैं। इसलिए सभी बड़े प्लेटफॉर्म्स ने स्वचालित डेटा संग्रह से बहु-स्तरीय सुरक्षा लागू की है।

जॉब बोर्ड्स की सुरक्षा के मुख्य तरीके:

  • IP द्वारा रेट लिमिटिंग — hh.ru एक घंटे में 80-120 अनुरोधों के बाद IP को ब्लॉक कर देता है, Superjob — 50-70 अनुरोधों के बाद। ब्लॉक 1 घंटे से लेकर एक दिन तक रह सकता है।
  • ब्राउज़र फिंगरप्रिंटिंग — साइटें User-Agent, HTTP हेडर्स, स्क्रीन रेज़ोल्यूशन, इंस्टॉल किए गए फ़ॉन्ट्स का विश्लेषण करती हैं। यदि डेटा वास्तविक ब्राउज़र से मेल नहीं खाता — अनुरोध ब्लॉक हो जाता है।
  • JavaScript चेक — कई साइटें Cloudflare या अपनी स्क्रिप्ट का उपयोग यह जांचने के लिए करती हैं कि अनुरोध वास्तविक ब्राउज़र से आ रहा है, न कि बॉट से।
  • Honeypot ट्रैप — छिपे हुए लिंक और फ़ील्ड जो केवल पार्सर को दिखाई देते हैं। यदि बॉट उन पर क्लिक करता है — IP ब्लैकलिस्ट में चला जाता है।
  • संदिग्ध गतिविधि पर कैप्चा — तेज़ अनुरोधों की श्रृंखला के बाद या डेटा सेंटर IP के उपयोग पर दिखाई देता है।

प्रॉक्सी के बिना आप अधिकतम 100-200 वैकेंसी पार्स कर पाएंगे, जिसके बाद आपका IP बैन हो जाएगा। बड़े पैमाने पर डेटा संग्रह (प्रतिदिन हजारों वैकेंसी) के लिए प्रॉक्सी एक अनिवार्य उपकरण बन जाती हैं।

महत्वपूर्ण: पार्सिंग साइट के उपयोग की शर्तों के अनुरूप होनी चाहिए। कई जॉब बोर्ड्स डेटा तक कानूनी पहुंच के लिए आधिकारिक API प्रदान करते हैं। उदाहरण के लिए, hh.ru के पास अनुरोध सीमा के साथ एक मुफ्त API है, जो अधिकांश कार्यों के लिए उपयुक्त है।

वैकेंसी पार्सिंग के लिए किस प्रकार की प्रॉक्सी चुनें

प्रॉक्सी टाइप का चुनाव पार्सिंग के पैमाने, बजट और गति की आवश्यकताओं पर निर्भर करता है। आइए विशिष्ट उपयोग परिदृश्यों के साथ तीन मुख्य विकल्पों को समझें।

प्रॉक्सी टाइप गति बैन का जोखिम कब उपयोग करें
डेटा सेंटर उच्च (50-200 ms) उच्च पार्सर टेस्टिंग, बिना ऑथराइज़ेशन के पब्लिक डेटा संग्रह
रेजिडेंशियल मध्यम (200-800 ms) कम IP रोटेशन के साथ hh.ru, Superjob की बड़े पैमाने पर पार्सिंग
मोबाइल मध्यम (300-1000 ms) बहुत कम ऑथराइज़ेशन के साथ पार्सिंग, LinkedIn की कठोर सुरक्षा को बायपास करना

पार्सिंग के लिए डेटा सेंटर प्रॉक्सी

यह सबसे तेज़ और सस्ता विकल्प है, लेकिन सीमाओं के साथ। डेटा सेंटर IP साइटों द्वारा आसानी से पहचाने जाते हैं, इसलिए वे केवल सरल कार्यों के लिए उपयुक्त हैं: बिना ऑथराइज़ेशन के वैकेंसी सूचियों की पार्सिंग, पब्लिक डेटा संग्रह, रेजिडेंशियल प्रॉक्सी पर लॉन्च से पहले पार्सर टेस्टिंग।

डेटा सेंटर प्रॉक्सी कब काम करती हैं:

  • छोटी मात्रा में डेटा की पार्सिंग (प्रति दिन 500 वैकेंसी तक)
  • कठोर सुरक्षा के बिना साइटों से डेटा संग्रह (छोटे क्षेत्रीय जॉब बोर्ड्स)
  • रेट लिमिट्स को बायपास करने के लिए IP रोटेशन के साथ आधिकारिक API का उपयोग
  • वैकेंसी के RSS फ़ीड और XML फ़ाइलों की पार्सिंग

hh.ru और Superjob के लिए डेटा सेंटर प्रॉक्सी अस्थिर रूप से काम करेंगी: आपको 20-30 अनुरोधों के बाद कैप्चा मिलेगा, और कई IP पहले से ही इन साइटों की ब्लैकलिस्ट में हैं।

रेजिडेंशियल प्रॉक्सी — जॉब बोर्ड्स के लिए इष्टतम विकल्प

रेजिडेंशियल प्रॉक्सी वास्तविक घरेलू उपयोगकर्ताओं के IP पते का उपयोग करती हैं, इसलिए साइटें उन्हें सामान्य विज़िटर के रूप में देखती हैं। यह वैकेंसी पार्सिंग के लिए मूल्य और गुणवत्ता का इष्टतम संतुलन है।

जॉब बोर्ड्स की पार्सिंग के लिए लाभ:

  • ब्लॉक होने का कम जोखिम — hh.ru और Superjob रेजिडेंशियल IP को वास्तविक उपयोगकर्ता से अलग नहीं कर सकते
  • IP पतों का बड़ा पूल — प्रत्येक अनुरोध पर या हर 5-10 मिनट में रोटेशन सेटअप किया जा सकता है
  • भौगोलिक बाइंडिंग — उस क्षेत्र के IP का उपयोग करके किसी विशिष्ट शहर से वैकेंसी पार्स की जा सकती हैं
  • स्थिरता — एक रेजिडेंशियल IP बिना ब्लॉक के 200-500 अनुरोध प्रोसेस कर सकता है

बड़े पैमाने पर पार्सिंग (प्रति दिन 1000 से अधिक वैकेंसी) के लिए IP रोटेशन के साथ रेजिडेंशियल प्रॉक्सी मानक समाधान है। आप हर 5-10 मिनट में IP परिवर्तन सेटअप करते हैं, अनुरोधों के बीच यादृच्छिक देरी (3-7 सेकंड) जोड़ते हैं और बिना ब्लॉक के स्थिर डेटा संग्रह प्राप्त करते हैं।

LinkedIn और ऑथराइज़ेशन के साथ पार्सिंग के लिए मोबाइल प्रॉक्सी

मोबाइल प्रॉक्सी मोबाइल ऑपरेटरों के IP का उपयोग करती हैं। उनका मुख्य लाभ — एक IP का उपयोग एक साथ सैकड़ों वास्तविक उपयोगकर्ताओं द्वारा किया जाता है, इसलिए साइटें हजारों सामान्य विज़िटर को ब्लॉक करने के जोखिम के बिना ऐसे पते को ब्लॉक नहीं कर सकतीं।

मोबाइल प्रॉक्सी कब आवश्यक हैं:

  • LinkedIn की पार्सिंग — इस प्लेटफॉर्म में बॉट्स से सबसे कठोर सुरक्षा है और यह डेटा सेंटर और यहां तक कि रेजिडेंशियल IP को आक्रामक रूप से ब्लॉक करता है
  • ऑथराइज़ेशन के साथ काम — यदि आपको बंद वैकेंसी या प्रोफ़ाइल डेटा पार्स करने की आवश्यकता है, तो मोबाइल IP अकाउंट बैन के जोखिम को कम करते हैं
  • विदेशी जॉब बोर्ड्स की पार्सिंग — Indeed, Glassdoor, Monster उन्नत सुरक्षा प्रणालियों का उपयोग करते हैं, जहां मोबाइल IP अधिक विश्वसनीय रूप से काम करते हैं
  • कठोर ब्लॉक्स को बायपास करना — यदि आपकी रेजिडेंशियल प्रॉक्सी को कैप्चा मिलना शुरू हो गया है, तो मोबाइल में स्विच करना समस्या को हल कर देगा

मोबाइल प्रॉक्सी का नुकसान — उच्च कीमत और कम गति। लेकिन महत्वपूर्ण कार्यों के लिए, जहां ब्लॉक अस्वीकार्य है, यह सबसे अच्छा विकल्प है।

hh.ru की पार्सिंग की विशेषताएं: सुरक्षा और बायपास के तरीके

hh.ru — घरेलू जॉब बोर्ड्स के बीच पार्सिंग से सबसे उन्नत सुरक्षा वाली सबसे बड़ी रूसी वैकेंसी साइट। साइट बॉट्स की पहचान के लिए रेट लिमिटिंग, फिंगरप्रिंटिंग और व्यवहार विश्लेषण के संयोजन का उपयोग करती है।

hh.ru की सुरक्षा कैसे काम करती है

1. IP पते द्वारा सीमाएं: एक IP से एक घंटे में 80-120 अनुरोधों के बाद साइट कैप्चा दिखाना शुरू कर देती है या HTTP 429 (Too Many Requests) रिटर्न करती है। ब्लॉक पार्सिंग की आक्रामकता के आधार पर 1 से 6 घंटे तक रहता है।

2. User-Agent और हेडर्स की जांच: hh.ru HTTP अनुरोध हेडर्स का विश्लेषण करता है। यदि User-Agent वास्तविक ब्राउज़र से मेल नहीं खाता या मानक हेडर्स (Accept-Language, Accept-Encoding) अनुपस्थित हैं, तो अनुरोध ब्लॉक हो जाता है।

3. JavaScript चेक: hh.ru के कुछ पेज डेटा लोड करने के लिए JavaScript निष्पादन की आवश्यकता होती है। हेडलेस ब्राउज़र के बिना एक साधारण HTTP पार्सर पूर्ण सामग्री प्राप्त नहीं कर सकता।

4. Honeypot लिंक: पेजों पर छिपे हुए तत्व हैं जो केवल पार्सर को दिखाई देते हैं। यदि आपकी स्क्रिप्ट इन लिंक पर जाती है — IP 24 घंटे के लिए ब्लैकलिस्ट में चला जाता है।

प्रॉक्सी के साथ hh.ru की सुरक्षा को बायपास करने की रणनीति

बिना ब्लॉक के hh.ru की स्थिर पार्सिंग के लिए निम्नलिखित कॉन्फ़िगरेशन का उपयोग करें:

hh.ru की पार्सिंग के लिए इष्टतम सेटअप:

  • प्रॉक्सी टाइप: हर 5-10 मिनट में IP रोटेशन के साथ रेजिडेंशियल
  • अनुरोधों के बीच देरी: 4-8 सेकंड (यादृच्छिक मान)
  • User-Agent: आधुनिक ब्राउज़रों (Chrome, Firefox, Safari नवीनतम संस्करण) के वास्तविक User-Agent का रोटेशन
  • हेडर्स: ब्राउज़र हेडर्स का पूरा सेट (Accept, Accept-Language, Accept-Encoding, Referer)
  • Cookies: एक सत्र के भीतर अनुरोधों के बीच cookies को सहेजना और पास करना
  • अनुरोध सीमा: एक IP पर 60-80 से अधिक अनुरोध नहीं, जिसके बाद प्रॉक्सी परिवर्तन

सुरक्षित क्रियाओं के अनुक्रम का उदाहरण:

  1. आवश्यक क्षेत्र (उदाहरण के लिए, मॉस्को) से IP के साथ रेजिडेंशियल प्रॉक्सी से कनेक्ट करें
  2. hh.ru के मुख्य पृष्ठ पर पहला अनुरोध करें, cookies प्राप्त करें और सहेजें
  3. 5-7 सेकंड प्रतीक्षा करें (पृष्ठ पढ़ने का अनुकरण)
  4. आवश्यक फ़िल्टर के साथ वैकेंसी खोज पृष्ठ पर अनुरोध करें
  5. वैकेंसी की सूची पार्स करें (आमतौर पर प्रति पृष्ठ 20-50)
  6. प्रत्येक वैकेंसी के लिए 4-6 सेकंड की देरी के साथ विस्तृत पृष्ठ पर अनुरोध करें
  7. 60-70 अनुरोधों के बाद प्रॉक्सी बदलें और चक्र दोहराएं

इस रणनीति के साथ आप एक थ्रेड से बिना किसी ब्लॉक के प्रति दिन 1000-2000 वैकेंसी पार्स कर सकते हैं। यदि अधिक वॉल्यूम की आवश्यकता है — विभिन्न प्रॉक्सी के साथ कई समानांतर थ्रेड चलाएं।

सुझाव: hh.ru वैकेंसी तक पहुंच के लिए एक मुफ्त API प्रदान करता है। अधिकांश कार्यों (श्रम बाजार विश्लेषण, वेतन निगरानी) के लिए API HTML पार्सिंग की तुलना में अधिक स्थिर समाधान होगा। रेट लिमिट्स को बायपास करने के लिए API के साथ काम करते समय IP रोटेशन के लिए प्रॉक्सी का उपयोग किया जा सकता है।

Superjob, LinkedIn और विदेशी प्लेटफॉर्म्स की पार्सिंग

Superjob: सुरक्षा की विशेषताएं

Superjob में hh.ru की तुलना में कम कठोर सुरक्षा है, लेकिन फिर भी पार्सिंग से सक्रिय रूप से लड़ता है। मुख्य अंतर:

  • कम रेट लिमिट: एक घंटे में 50-70 अनुरोधों के बाद ब्लॉक आता है (hh.ru के 80-120 के विरुद्ध)
  • हेडर्स की कम सख्त जांच: हेडर्स के सरलीकृत सेट का उपयोग किया जा सकता है
  • JavaScript सुरक्षा का अभाव: अधिकांश डेटा हेडलेस ब्राउज़र के बिना साधारण HTTP अनुरोध के माध्यम से उपलब्ध है
  • क्षेत्रीय ब्लॉकिंग: कुछ वैकेंसी केवल एक विशिष्ट क्षेत्र के IP से उपलब्ध हैं

Superjob के लिए हर 10-15 मिनट में रोटेशन और अनुरोधों के बीच 3-5 सेकंड की देरी के साथ रेजिडेंशियल प्रॉक्सी पर्याप्त हैं। यह प्रति दिन 500-1000 वैकेंसी को स्थिर रूप से पार्स करने की अनुमति देगा।

LinkedIn: सबसे कठोर सुरक्षा

LinkedIn — यह एक अलग कहानी है। प्लेटफॉर्म बॉट्स की पहचान के लिए मशीन लर्निंग के उन्नत एल्गोरिदम का उपयोग करता है और सभी सोशल नेटवर्क और जॉब बोर्ड्स में सबसे आक्रामक सुरक्षा प्रणालियों में से एक है।

LinkedIn की सुरक्षा की विशेषताएं:

  • अनिवार्य ऑथराइज़ेशन: अधिकांश डेटा केवल अधिकृत उपयोगकर्ताओं के लिए उपलब्ध है
  • व्यवहार विश्लेषण: LinkedIn क्रियाओं के पैटर्न का विश्लेषण करता है: स्क्रॉलिंग गति, माउस मूवमेंट, पृष्ठ पर समय
  • अकाउंट ब्लॉकिंग: संदिग्ध गतिविधि पर न केवल IP, बल्कि अकाउंट भी ब्लॉक हो जाता है
  • प्रोफ़ाइल व्यू पर प्रतिबंध: मुफ्त अकाउंट प्रति माह सीमित संख्या में प्रोफ़ाइल देख सकते हैं
  • अनिवार्य JavaScript निष्पादन: हेडलेस ब्राउज़र के बिना पार्सिंग असंभव है

LinkedIn पार्सिंग रणनीति:

  1. मोबाइल प्रॉक्सी का उपयोग करें — वे ब्लॉक होने का सबसे कम जोखिम देते हैं। एक मोबाइल IP का उपयोग प्रति दिन 100-200 प्रोफ़ाइल व्यू के लिए किया जा सकता है।
  2. हेडलेस ब्राउज़र अनिवार्य है — वास्तविक ब्राउज़र फिंगरप्रिंट (स्क्रीन रेज़ोल्यूशन, WebGL, Canvas) के सेटअप के साथ Puppeteer या Playwright का उपयोग करें।
  3. धीमी पार्सिंग गति — एक अकाउंट से प्रति घंटे 20-30 प्रोफ़ाइल से अधिक नहीं। व्यू के बीच 10-20 सेकंड की देरी जोड़ें।
  4. वास्तविक व्यवहार का अनुकरण — पृष्ठ स्क्रॉलिंग, यादृच्छिक क्लिक, प्रोफ़ाइल अनुभागों के बीच संक्रमण।
  5. अकाउंट वार्मअप — नए LinkedIn अकाउंट को तुरंत पार्सिंग के लिए उपयोग नहीं किया जा सकता। सामान्य उपयोगकर्ता की गतिविधि का अनुकरण करने के लिए 1-2 सप्ताह की आवश्यकता है।
  6. अकाउंट रोटेशन — लोड वितरित करने के लिए विभिन्न प्रॉक्सी के साथ कई अकाउंट का उपयोग करें।

LinkedIn की पार्सिंग सभी जॉब बोर्ड्स में सबसे कठिन कार्य है। यदि आपको इस प्लेटफॉर्म से डेटा की आवश्यकता है, तो आधिकारिक Sales Navigator API या तीसरे पक्ष की सेवाओं के उपयोग पर विचार करें जो कानूनी रूप से डेटा प्रदान करती हैं।

विदेशी जॉब बोर्ड्स: Indeed, Glassdoor, Monster

विदेशी प्लेटफॉर्म्स में आमतौर पर रूसी साइटों (hh.ru को छोड़कर) की तुलना में अधिक कठोर सुरक्षा होती है। मुख्य विशेषताएं:

  • Indeed — JavaScript चेक के साथ Cloudflare का उपयोग करता है। हेडलेस ब्राउज़र और उस देश से रेजिडेंशियल/मोबाइल प्रॉक्सी की आवश्यकता है जिसकी वैकेंसी आप पार्स कर रहे हैं।
  • Glassdoor — अधिकांश डेटा देखने के लिए ऑथराइज़ेशन की आवश्यकता है। डेटा सेंटर IP को सक्रिय रूप से ब्लॉक करता है। रेजिडेंशियल प्रॉक्सी और धीमी पार्सिंग गति (8-12 सेकंड की देरी) का उपयोग करें।
  • Monster — भागीदारों के लिए API है, लेकिन HTML पार्सिंग के लिए आवश्यक देश से भौगोलिक बाइंडिंग के साथ रेजिडेंशियल प्रॉक्सी की आवश्यकता है।

सभी विदेशी प्लेटफॉर्म्स के लिए प्रॉक्सी की भौगोलिक बाइंडिंग महत्वपूर्ण है। यदि आप USA में वैकेंसी पार्स कर रहे हैं, तो अमेरिकी रेजिडेंशियल IP का उपयोग करें। अन्य देशों के IP से अनुरोध संदेह पैदा कर सकते हैं और ब्लॉक का कारण बन सकते हैं।

IP रोटेशन और अनुरोधों के बीच देरी का सेटअप

प्रॉक्सी रोटेशन का सही सेटअप बिना ब्लॉक के स्थिर पार्सिंग की कुंजी है। आइए दो मुख्य रणनीतियों को समझें: प्रत्येक अनुरोध पर रोटेशन और समय द्वारा रोटेशन।

प्रत्येक अनुरोध पर रोटेशन (Rotating Proxies)

इस दृष्टिकोण में प्रत्येक HTTP अनुरोध एक नए IP पते से जाता है। यह अधिकतम सुरक्षित विधि है, लेकिन इसकी सीमाएं हैं:

लाभ:

  • एक IP की गतिविधि को ट्रैक करना असंभव है
  • समय की इकाई में अधिक अनुरोध किए जा सकते हैं
  • प्रत्येक IP पर सीमाओं को ट्रैक करने की आवश्यकता नहीं है

नुकसान:

  • सत्र को सहेजना असंभव है (IP बदलने पर cookies खो जाती हैं)
  • ऑथराइज़ेशन के साथ पार्सिंग के लिए उपयुक्त नहीं
  • कुछ साइटें अनुरोधों को ब्लॉक कर देती हैं यदि IP बहुत बार बदलता है

प्रत्येक अनुरोध पर रोटेशन बिना ऑथराइज़ेशन के hh.ru और Superjob के पब्लिक पेजों की पार्सिंग के लिए उपयुक्त है। प्रॉक्सी प्रदाता के पैरामीटर के माध्यम से सेटअप किया जाता है (आमतौर पर यह स्वचालित रोटेशन के साथ एक विशेष एंडपॉइंट है)।

समय द्वारा रोटेशन (Sticky Sessions)

इस दृष्टिकोण में एक IP का उपयोग एक निश्चित समय (5-30 मिनट) के लिए किया जाता है, जिसके बाद स्वचालित परिवर्तन होता है। यह अधिकांश जॉब बोर्ड्स पार्सिंग कार्यों के लिए इष्टतम विकल्प है।

अनुशंसित रोटेशन अंतराल:

साइट रोटेशन अंतराल IP पर अधिकतम अनुरोध अनुरोधों के बीच देरी
hh.ru 5-10 मिनट 60-80 4-8 सेकंड
Superjob 10-15 मिनट 50-70 3-5 सेकंड
LinkedIn 30-60 मिनट 20-40 10-20 सेकंड
Indeed 10-20 मिनट 40-60 5-10 सेकंड
Glassdoor 15-30 मिनट 30-50 8-12 सेकंड

यादृच्छिक देरी का सेटअप

अनुरोधों के बीच निश्चित देरी (उदाहरण के लिए, ठीक 5 सेकंड) सुरक्षा प्रणालियों के लिए संदिग्ध लगती है। वास्तविक उपयोगकर्ता इतनी सटीकता के साथ कार्य नहीं कर सकता। हमेशा रेंज में यादृच्छिक देरी का उपयोग करें।

यादृच्छिक देरी के कार्यान्वयन के उदाहरण:

// Python
import time
import random

# 4 से 8 सेकंड की देरी
delay = random.uniform(4, 8)
time.sleep(delay)

# अधिक जटिल तर्क: कभी-कभी लंबा विराम करें
if random.random() < 0.1:  # 10% संभावना
    time.sleep(random.uniform(15, 30))  # उपयोगकर्ता के विचलित होने का अनुकरण
else:
    time.sleep(random.uniform(4, 8))
// JavaScript / Node.js
const sleep = (min, max) => {
  const delay = Math.random() * (max - min) + min;
  return new Promise(resolve => setTimeout(resolve, delay * 1000));
};

// उपयोग
await sleep(4, 8);  // 4-8 सेकंड की देरी

// लंबे विराम की संभावना के साथ
if (Math.random() < 0.1) {
  await sleep(15, 30);  // 10% लंबे विराम की संभावना
} else {
  await sleep(4, 8);
}

5-10% की संभावना के साथ यादृच्छिक लंबे विराम (15-30 सेकंड) जोड़ना पार्सर के व्यवहार को वास्तविक उपयोगकर्ता के और भी अधिक समान बनाता है, जो फोन कॉल या अन्य कार्य से विचलित हो सकता है।

कैप्चा और अन्य ब्लॉक्स की हैंडलिंग

प्रॉक्सी और देरी के सही सेटअप के साथ भी आप कैप्चा या अन्य प्रकार के ब्लॉक का सामना कर सकते हैं। आइए समझें कि इन स्थितियों पर सही तरीके से कैसे प्रतिक्रिया दें।

जॉब बोर्ड्स के ब्लॉक के प्रकार

1. HTTP 429 Too Many Requests — सबसे आम ब्लॉक प्रकार। साइट स्पष्ट रूप से बताती है कि आपने अनुरोध सीमा पार कर ली है। आमतौर पर रिस्पॉन्स हेडर में Retry-After होता है, जो बताता है कि कितने सेकंड बाद अनुरोध दोहराया जा सकता है।

कैसे हैंडल करें: तुरंत प्रॉक्सी बदलें और Retry-After में निर्दिष्ट समय (आमतौर पर 1-6 घंटे) के लिए वर्तमान IP को ब्लैकलिस्ट में जोड़ें। यदि Retry-After अनुपस्थित है, तो IP को 2 घंटे के लिए ब्लैकलिस्ट में जोड़ें।

2. HTTP 403 Forbidden — IP सर्वर स्तर पर ब्लॉक है। यह अधिक गंभीर ब्लॉक है, जो कई घंटों से लेकर एक दिन तक रह सकता है।

कैसे हैंडल करें: प्रॉक्सी बदलें और IP को दीर्घकालिक ब्लैकलिस्ट (24 घंटे) में जोड़ें। लॉग का विश्लेषण करें: संभवतः आप बहुत आक्रामक रूप से पार्स कर रहे हैं या डेटा सेंटर IP का उपयोग कर रहे हैं जहां रेजिडेंशियल की आवश्यकता है।

3. कैप्चा (CAPTCHA) — साइट "मैं रोबोट नहीं हूं" चेक दिखाती है। इसका मतलब है कि आपका व्यवहार संदिग्ध लगा, लेकिन IP अभी तक पूरी तरह से ब्लॉक नहीं हुआ है।

कैसे हैंडल करें: तीन विकल्प हैं:

  • प्रॉक्सी बदलना — सबसे सरल तरीका। वर्तमान IP को 6-12 घंटे के लिए ब्लैकलिस्ट में जोड़ा जाता है।
  • कैप्चा का स्वचालित समाधान — 2Captcha, Anti-Captcha, CapSolver जैसी सेवाओं का उपयोग। वे 1000 समाधानों के लिए $1-3 खर्च करती हैं।
  • मैनुअल समाधान — यदि पार्सिंग समय के हिसाब से महत्वपूर्ण नहीं है, तो कैप्चा को ऑपरेटर को मैनुअल समाधान के लिए भेजा जा सकता है।

4. Cloudflare Challenge — JavaScript चेक जिसके लिए ब्राउज़र में कोड निष्पादन की आवश्यकता होती है। सामान्य HTTP लाइब्रेरी इस चेक को पास नहीं करेगी।

कैसे हैंडल करें: वास्तविक फिंगरप्रिंट के सेटअप के साथ हेडलेस ब्राउज़र (Puppeteer, Playwright, Selenium) का उपयोग करें। puppeteer-extra-plugin-stealth जैसी लाइब्रेरी हेडलेस मोड की पहचान को बायपास करने में मदद करती हैं।

कैप्चा समाधान सेवाओं का एकीकरण

यदि आपने कैप्चा को स्वचालित रूप से हल करने का निर्णय लिया है, तो यहां लोकप्रिय सेवा 2Captcha के साथ एकीकरण का उदाहरण है:

// 2captcha-python लाइब्रेरी का उपयोग करके Python
from twocaptcha import TwoCaptcha
import requests

solver = TwoCaptcha('YOUR_API_KEY')

try:
    # reCAPTCHA v2 का समाधान
    result = solver.recaptcha(
        sitekey='6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-',
        url='https://hh.ru/search/vacancy',
        proxy={
            'type': 'HTTPS',
            'uri': 'login:password@ip:port'
        }
    )
    
    # समाधान टोकन प्राप्त करें
    captcha_token = result['code']
    
    # टोकन के साथ अनुरोध भेजें
    response = requests.post(
        'https://hh.ru/search/vacancy',
        data={
            'g-recaptcha-response': captcha_token,
            # फॉर्म के अन्य पैरामीटर
        },
        proxies={
            'http': 'http://login:password@ip:port',
            'https': 'http://login:password@ip:port'
        }
    )
    
except Exception as e:
    print(f'कैप्चा समाधान त्रुटि: {e}')

एक कैप्चा को हल करने में 10-30 सेकंड लगते हैं और लगभग $0.001-0.003 खर्च होता है। बड़े पैमाने पर पार्सिंग के लिए यह महंगा हो सकता है, इसलिए पार्सिंग को इस तरह सेटअप करना बेहतर है कि कैप्चा यथासंभव कम दिखाई दे।

मॉनिटरिंग और अलर्ट सिस्टम

पार्सर के स्थिर संचालन के लिए ब्लॉक की निगरानी और स्वचालित अलर्ट सेटअप करना महत्वपूर्ण है:

क्या ट्रैक करें:

  • सफल अनुरोधों का प्रतिशत — यदि 90% से नीचे गिरता है, तो प्रॉक्सी और सेटिंग्स की जांच करने की आवश्यकता है
  • प्रति घंटे कैप्चा की संख्या — यदि 5-10 से अधिक है, तो आप बहुत आक्रामक रूप से पार्स कर रहे हैं
  • प्रॉक्सी रिस्पॉन्स की औसत गति — यदि अचानक बढ़ गई है, तो संभवतः प्रॉक्सी ओवरलोड हैं
  • 429/403 त्रुटियों की संख्या — प्रॉक्सी की गुणवत्ता और सेटिंग्स की शुद्धता का संकेतक
  • ब्लॉक किए गए IP की सूची — यदि एक ही IP लगातार ब्लॉक होता है, तो इसे पूल से बाहर करें

यदि सफल अनुरोधों का प्रतिशत थ्रेशोल्ड मान से नीचे गिरता है तो नोटिफिकेशन भेजना (Telegram, email, Slack) सेटअप करें। यह समस्याओं पर तुरंत प्रतिक्रिया करने और पार्सिंग समय नहीं खोने की अनुमति देगा।

लोकप्रिय पार्सिंग टूल्स में प्रॉक्सी सेटअप

आइए समझें कि जॉब बोर्ड्स की पार्सिंग के लिए सबसे लोकप्रिय टूल्स में प्रॉक्सी कैसे सेटअप करें: Python (requests, Scrapy), Node.js (axios, Puppeteer) और तैयार समाधान।

Python: requests और Scrapy

Python — requests, BeautifulSoup और Scrapy लाइब्रेरी के कारण पार्सिंग के लिए सबसे लोकप्रिय भाषा।

requests लाइब्रेरी के साथ उदाहरण:

import requests
import random
import time

# प्रॉक्सी की सूची (प्रदाता से प्राप्त करें)
PROXIES = [
    'http://user:[email protected]:8080',
    'http://user:[email protected]:8080',
    'http://user:[email protected]:8080'
]

# रोटेशन के लिए User-Agent की सूची
USER_AGENTS = [
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36',
    'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36'
]

def parse_vacancy(url):
    proxy = random.choice(PROXIES)
    user_agent = random.choice(USER_AGENTS)
    
    headers = {
        'User-Agent': user_agent,
        'Accept': 'text/html,application/xhtml+xml',
        'Accept-Language': 'ru-RU,ru;q=0.9,en;q=0.8',
        'Accept-Encoding': 'gzip, deflate, br',
        'Connection': 'keep-alive'
    }
    
    proxies = {
        'http': proxy,
        'https': proxy
    }
    
    try:
        response = requests.get(
            url,
            headers=headers,
            proxies=proxies,
            timeout=30
        )
        
        if response.status_code == 200:
            return response.text
        elif response.status_code == 429:
            print(f'{proxy} के लिए रेट लिमिट, प्रॉक्सी बदल रहे हैं')
            # अस्थायी रूप से सूची से प्रॉक्सी हटाएं
            return None
        else:
            print(f'त्रुटि {response.status_code}')
            return None
            
    except Exception as e:
        print(f'अनुरोध त्रुटि: {e}')
        return None

# उपयोग
for i in range(100):
    html = parse_vacancy('https://hh.ru/vacancy/123456')
    if html:
        # डेटा प्रोसेसिंग
        pass
    
    # यादृच्छिक देरी
    time.sleep(random.uniform(4, 8))

Scrapy सेटअप का उदाहरण:

# settings.py

# प्रॉक्सी समर्थन सक्षम करें
DOWNLOADER_MIDDLEWARES = {
    'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110,
    'scrapy_rotating_proxies.middlewares.RotatingProxyMiddleware': 610,
    'scrapy_rotating_proxies.middlewares.BanDetectionMiddleware': 620,
}

# प्रॉक्सी की सूची
ROTATING_PROXY_LIST = [
    'http://user:[email protected]:8080',
    'http://user:[email protected]:8080',
    'http://user:[email protected]:8080'
]

# बैन का स्वचालित पता लगाना
ROTATING_PROXY_BAN_POLICY = 'scrapy_rotating_proxies.policy.BanDetectionPolicy'

# अनुरोधों के बीच देरी
DOWNLOAD_DELAY = 5
RANDOMIZE_DOWNLOAD_DELAY = True  # यादृच्छिक देरी ±50%

# User-Agent रोटेशन
DOWNLOADER_MIDDLEWARES.update({
    'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,
    'scrapy_user_agents.middlewares.RandomUserAgentMiddleware': 400,
})

# अधिकतम समवर्ती अनुरोध
CONCURRENT_REQUESTS = 4
CONCURRENT_REQUESTS_PER_DOMAIN = 1

Node.js: प्रॉक्सी के साथ Puppeteer

JavaScript (LinkedIn, Indeed) वाली साइटों की पार्सिंग के लिए हेडलेस ब्राउज़र की आवश्यकता होती है। Puppeteer — Node.js के लिए सबसे लोकप्रिय समाधान।

const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');

// हेडलेस ब्राउज़र पहचान को बायपास करने के लिए प्लगइन
puppeteer.use(StealthPlugin());

async function parseWithProxy() {
  const proxy = 'http://user:[email protected]:8080';
  
  const browser = await puppeteer.launch({
    headless: true,
    args: [
      `--proxy-server=${proxy}`,
      '--no-sandbox',
      '--disable-setuid-sandbox',
      '--disable-dev-shm-usage',
      '--disable-blink-features=AutomationControlled'
    ]
  });
  
  const page = await browser.newPage();
  
  // वास्तविक User-Agent सेट करें
  await page.setUserAgent(
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
  );
  
  // अतिरिक्त हेडर्स सेट करें
  await page.setExtraHTTPHeaders({
    'Accept-Language': 'en-US,en;q=0.9',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9'
  });
  
  try {
    await page.goto('https://hh.ru/search/vacancy', {
      waitUntil: 'networkidle2',
      timeout: 30000
    });
    
    // पृष्ठ सामग्री प्राप्त करें
    const content = await page.content();
    
    // या विशिष्ट तत्व
    const vacancies = await page.$$eval('.vacancy-serp-item', items => {
      return items.map(item => ({
        title: item.querySelector('.vacancy-serp-item__title')?.textContent,
        company: item.querySelector('.vacancy-serp-item__meta-info-company')?.textContent,
        salary: item.querySelector('.vacancy-serp-item__sidebar')?.textContent
      }));
    });
    
    console.log(`${vacancies.length} वैकेंसी मिलीं`);
    
  } catch (error) {
    console.error('पार्सिंग त्रुटि:', error);
  } finally {
    await browser.close();
  }
}

parseWithProxy();

निष्कर्ष और सिफारिशें

जॉब बोर्ड्स की सफल पार्सिंग के लिए प्रॉक्सी, देरी और अनुरोध हेडर्स के सही संयोजन की आवश्यकता होती है। मुख्य सिफारिशें:

स्थिर पार्सिंग के लिए चेकलिस्ट:

  • hh.ru और Superjob के लिए IP रोटेशन के साथ रेजिडेंशियल प्रॉक्सी का उपयोग करें
  • LinkedIn के लिए मोबाइल प्रॉक्सी पर स्विच करें और हेडलेस ब्राउज़र का उपयोग करें
  • अनुरोधों के बीच 4-8 सेकंड की यादृच्छिक देरी सेटअप करें
  • आधुनिक ब्राउज़रों के वास्तविक User-Agent और पूर्ण हेडर्स का उपयोग करें
  • एक IP पर 60-80 अनुरोधों के बाद प्रॉक्सी बदलें
  • सफल अनुरोधों के प्रतिशत और कैप्चा की संख्या की निगरानी करें
  • यदि संभव हो तो आधिकारिक API का उपयोग करें — यह HTML पार्सिंग की तुलना में अधिक विश्वसनीय है

याद रखें कि पार्सिंग साइट के उपयोग की शर्तों का उल्लंघन कर सकती है। बड़े पैमाने पर डेटा संग्रह शुरू करने से पहले, आधिकारिक API या डेटा प्रदाताओं के साथ साझेदारी की संभावना का पता लगाएं। यह कानूनी जोखिमों से बचाएगा और अधिक स्थिर डेटा एक्सेस प्रदान करेगा।

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

```