Back to Blog

एवियासेल्स, बुकिंग और स्काईस्कैनर के लिए प्रॉक्सी: बिना ब्लॉक के कीमतें कैसे इकट्ठा करें

यात्रा एग्रीगेटर्स पर कीमतों की निगरानी के लिए प्रॉक्सी चुनने और सेटअप करने के लिए पूर्ण गाइड: किस प्रकार की प्रॉक्सी का उपयोग करें, ब्लॉक से कैसे बचें और Aviasales, Booking, Skyscanner से डेटा कैसे इकट्ठा करें।

📅March 9, 2026
```html

Aviasales, Booking, Skyscanner जैसे ट्रैवल एग्रीगेटर्स स्वचालित डेटा संग्रह से सक्रिय रूप से सुरक्षा करते हैं — 10-20 अनुरोधों के बाद IP को ब्लॉक कर देते हैं, कैप्चा दिखाते हैं, बॉट्स के लिए कीमतें विकृत करते हैं। यदि आप अपनी सेवा, सहयोगी कार्यक्रम या बाजार विश्लेषण के लिए एयरलाइन टिकट या होटल की कीमतों की निगरानी करते हैं, तो सही ढंग से कॉन्फ़िगर की गई प्रॉक्सी के बिना आपको पार्सर के काम के कुछ मिनटों में ही बैन मिल जाएगा।

इस गाइड में हम समझेंगे कि ट्रैवल साइटों की स्थिर पार्सिंग के लिए किस प्रकार की प्रॉक्सी की आवश्यकता है, IP रोटेशन कैसे सेटअप करें, Cloudflare और Akamai के एंटी-बॉट सिस्टम को कैसे बायपास करें, और कौन सी गलतियाँ प्रॉक्सी का उपयोग करते समय भी ब्लॉकिंग का कारण बनती हैं।

ट्रैवल एग्रीगेटर्स पार्सिंग को क्यों ब्लॉक करते हैं और वे यह कैसे करते हैं

ट्रैवल एग्रीगेटर्स को पार्सिंग से वास्तविक नुकसान होता है: उनके API के प्रत्येक अनुरोध की लागत होती है (वे डेटा तक पहुंच के लिए एयरलाइनों और होटलों को भुगतान करते हैं), और प्रतिस्पर्धी ग्राहकों को लुभाने के लिए एकत्रित कीमतों का उपयोग करते हैं। इसलिए Aviasales, Booking, Skyscanner, Kayak एंटी-बॉट सुरक्षा में लाखों का निवेश करते हैं।

पार्सिंग का पता लगाने के मुख्य तरीके

1. एक IP से अनुरोध आवृत्ति का विश्लेषण। एक सामान्य उपयोगकर्ता प्रति सत्र 3-5 खोज अनुरोध करता है, पार्सर — प्रति मिनट सैकड़ों। यदि आपके IP से प्रति मिनट 15-20 से अधिक अनुरोध आते हैं, तो सिस्टम इसे संदिग्ध के रूप में चिह्नित करता है। 50-100 अनुरोधों के बाद — 24 घंटे या हमेशा के लिए ब्लॉक।

2. ब्राउज़र फिंगरप्रिंटिंग। ट्रैवल साइटें दर्जनों पैरामीटर एकत्र करती हैं: स्क्रीन रिज़ॉल्यूशन, टाइम ज़ोन, इंस्टॉल किए गए फ़ॉन्ट, WebGL फिंगरप्रिंट, canvas fingerprint, ऑडियो कॉन्टेक्स्ट। यदि ये पैरामीटर IP के घोषित जियोलोकेशन से मेल नहीं खाते (उदाहरण के लिए, मॉस्को से IP, लेकिन टाइम ज़ोन UTC+8) — यह प्रॉक्सी या VPN का संकेत है।

3. IP प्रतिष्ठा की जाँच। साइटें ज्ञात प्रॉक्सी प्रदाताओं, डेटासेंटर, VPN सर्वर के डेटाबेस का उपयोग करती हैं। यदि आपका IP ऐसे डेटाबेस में सूचीबद्ध है (उदाहरण के लिए, MaxMind GeoIP2, IPQualityScore, SEON), तो अनुरोध ब्लॉक हो जाते हैं या कैप्चा दिखाया जाता है। Booking और Skyscanner Amazon AWS, Google Cloud, DigitalOcean की रेंज से IP के प्रति विशेष रूप से सख्त हैं।

4. व्यवहार विश्लेषण। एंटी-बॉट सिस्टम माउस मूवमेंट, स्क्रॉलिंग गति, क्लिक के बीच विराम को ट्रैक करते हैं। अतिरिक्त पैच के बिना Selenium और Puppeteer निशान छोड़ते हैं: navigator.webdriver प्रॉपर्टी, प्लगइन्स की अनुपस्थिति, असामान्य विंडो आकार। प्रॉक्सी के साथ भी ऐसे ट्रैफ़िक को आसानी से पहचाना जा सकता है।

5. TLS-फिंगरप्रिंटिंग। आधुनिक एंटी-बॉट सिस्टम (Cloudflare, Akamai) TLS हैंडशेक पैरामीटर का विश्लेषण करते हैं: cipher suites का क्रम, एक्सटेंशन, प्रोटोकॉल संस्करण। Python requests और मानक लाइब्रेरी की TLS-fingerprint ब्राउज़र से भिन्न होती है — यह तुरंत बॉट को उजागर करती है।

वास्तविक मामला: हमारे एक क्लाइंट ने डेटा सेंटर (DigitalOcean) की 100 प्रॉक्सी के माध्यम से Booking पर कीमतें पार्स कीं। 2 घंटे के काम के बाद सभी IP हमेशा के लिए ब्लॉक हो गए — Booking ने डेटासेंटर रेंज का पता लगाया और ब्लैकलिस्ट में जोड़ दिया। रेजिडेंशियल प्रॉक्सी पर स्विच करने से समस्या हल हो गई: एक महीने के काम में — शून्य ब्लॉकिंग।

मूल्य निगरानी के लिए किस प्रकार की प्रॉक्सी उपयुक्त हैं: तुलना

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

प्रॉक्सी प्रकार साइटों का विश्वास स्तर गति लागत (सशर्त) सबसे अच्छा है
रेजिडेंशियल प्रॉक्सी बहुत उच्च (घरेलू उपयोगकर्ताओं के IP) मध्यम (300-800 ms) $$$ (ट्रैफ़िक के अनुसार) Booking, Expedia, Airbnb — कड़ी सुरक्षा वाली साइटें
मोबाइल प्रॉक्सी अधिकतम (मोबाइल ऑपरेटरों के IP) कम (500-1500 ms) $$$$ (सबसे महंगी) मोबाइल संस्करणों की पार्सिंग, API अनुरोध, Cloudflare बायपास
डेटासेंटर प्रॉक्सी कम (आसानी से पता लगाई जाती हैं) बहुत उच्च (50-150 ms) $ (सबसे सस्ती) Aviasales API, कम सुरक्षित एग्रीगेटर्स, परीक्षण

विशिष्ट ट्रैवल साइटों के लिए चयन की विशेषताएं

Aviasales और Skyscanner — API के माध्यम से पार्सिंग के लिए अपेक्षाकृत उदार (यदि आपके पास सहयोगी पहुंच है)। वेब पार्सिंग के लिए हर 5-10 अनुरोधों पर रोटेशन के साथ रेजिडेंशियल प्रॉक्सी पर्याप्त हैं। डेटासेंटर प्रॉक्सी काम करती हैं, लेकिन IP के बड़े पूल (न्यूनतम 500 पते) और धीमी रोटेशन (एक IP से 30 सेकंड में 1 अनुरोध से अधिक नहीं) की आवश्यकता होती है।

Booking.com और Expedia — कड़े नियमों के साथ Cloudflare Enterprise का उपयोग करते हैं। धीमी पार्सिंग के दौरान भी 90% मामलों में डेटासेंटर प्रॉक्सी ब्लॉक हो जाती हैं। केवल रेजिडेंशियल या मोबाइल प्रॉक्सी की आवश्यकता है, साथ ही वास्तविक ब्राउज़र का अनुकरण (Selenium Stealth, प्लगइन्स के साथ Puppeteer Extra)। IP रोटेशन — हर 3-5 अनुरोधों के बाद।

Airbnb — सबसे सुरक्षित साइटों में से एक। खोज अनुरोध से मेल खाने वाले जियोलोकेशन के साथ रेजिडेंशियल प्रॉक्सी की आवश्यकता है (यदि आप पेरिस में होटल खोज रहे हैं — IP फ्रेंच होना चाहिए)। कुकीज़, रेफरर, ब्राउज़र हेडर अनिवार्य हैं। मोबाइल API के माध्यम से पार्सिंग के लिए मोबाइल प्रॉक्सी सर्वोत्तम परिणाम दिखाती हैं।

Kayak और Momondo — मध्यम स्तर की सुरक्षा। रेजिडेंशियल प्रॉक्सी — इष्टतम विकल्प। डेटासेंटर प्रॉक्सी का उपयोग किया जा सकता है, लेकिन अनिवार्य रोटेशन और अनुरोधों के बीच देरी (न्यूनतम 10-15 सेकंड) के साथ।

रेजिडेंशियल बनाम डेटासेंटर प्रॉक्सी: ट्रैवल साइटों के लिए क्या चुनें

रेजिडेंशियल प्रॉक्सी और डेटासेंटर प्रॉक्सी के बीच मुख्य अंतर — IP पते का स्रोत। रेजिडेंशियल वास्तविक घरेलू इंटरनेट प्रदाताओं के IP (Rostelecom, MTS, Comcast, Verizon) का उपयोग करती हैं, डेटासेंटर प्रॉक्सी — होस्टिंग कंपनियों के सर्वर के IP (AWS, Google Cloud, OVH)। ट्रैवल साइटें रेजिडेंशियल IP पर भरोसा करती हैं, क्योंकि उनका उपयोग सामान्य उपयोगकर्ता करते हैं।

रेजिडेंशियल प्रॉक्सी कब अनिवार्य हैं

1. Cloudflare/Akamai वाली साइटों की पार्सिंग। Booking, Expedia, Airbnb इन सिस्टम का उपयोग करते हैं — वे स्वचालित रूप से 95% डेटासेंटर IP को ब्लॉक करते हैं। रेजिडेंशियल प्रॉक्सी जाँच पास करती हैं, क्योंकि उनके IP प्रॉक्सी प्रदाताओं के डेटाबेस में सूचीबद्ध नहीं हैं।

2. जियोलोकेशन से जुड़ी कीमतों का संग्रह। ट्रैवल साइटें विभिन्न देशों और शहरों के उपयोगकर्ताओं को अलग-अलग कीमतें दिखाती हैं (करों, मुद्रा दरों, स्थानीय प्रचारों के कारण)। यदि आपको किसी विशिष्ट क्षेत्र के लिए कीमतों की आवश्यकता है (उदाहरण के लिए, जर्मनी के निवासियों के लिए कीमतें), तो जर्मन IP के साथ रेजिडेंशियल प्रॉक्सी — एकमात्र विश्वसनीय विकल्प है।

3. ब्लॉकिंग के बिना दीर्घकालिक पार्सिंग। यदि आप महीनों तक 24/7 कीमतों की निगरानी करते हैं, तो रेजिडेंशियल प्रॉक्सी लाभदायक हैं — आप ब्लॉक किए गए IP को बदलने और नई प्रॉक्सी सेटअप करने में समय बर्बाद नहीं करते।

डेटासेंटर प्रॉक्सी का उपयोग कब किया जा सकता है

1. आधिकारिक API के माध्यम से पार्सिंग। यदि आपके पास Aviasales API, Skyscanner API तक सहयोगी पहुंच है — प्रॉक्सी का प्रकार महत्वपूर्ण नहीं है, API IP स्रोत के प्रति कम संवेदनशील हैं। डेटासेंटर प्रॉक्सी उच्च गति और कम लागत देंगी।

2. पार्सर का परीक्षण और विकास। कोड लिखने और डीबग करने के चरण में डेटासेंटर प्रॉक्सी का उपयोग करें — वे सस्ती, तेज़ हैं, और यदि कुछ IP बैन में आ जाएं तो कोई बात नहीं।

3. कम सुरक्षित एग्रीगेटर्स की पार्सिंग। कुछ क्षेत्रीय ट्रैवल साइटें या बस टिकट एग्रीगेटर्स उन्नत एंटी-बॉट सुरक्षा का उपयोग नहीं करते। उनके लिए IP के बड़े पूल और धीमी रोटेशन के साथ डेटासेंटर प्रॉक्सी काफी उपयुक्त हैं।

सलाह: प्रॉक्सी प्रकारों को मिलाएं। महत्वपूर्ण अनुरोधों (पहली खोज, टोकन प्राप्त करना, कैप्चा बायपास) के लिए रेजिडेंशियल का उपयोग करें, और API या कम सुरक्षित एंडपॉइंट्स के लिए बड़े पैमाने पर अनुरोधों के लिए डेटासेंटर प्रॉक्सी। यह स्थिरता बनाए रखते हुए खर्चों को 40-60% कम करेगा।

IP रोटेशन रणनीति: पार्सिंग के दौरान प्रॉक्सी कितनी बार बदलें

सही IP रोटेशन — ब्लॉकिंग के बिना दीर्घकालिक पार्सिंग की कुंजी। यदि IP बहुत बार बदलते हैं, तो आप जल्दी से पते के पूल को समाप्त कर देंगे और ट्रैफ़िक पर उच्च खर्च प्राप्त करेंगे। यदि बहुत कम — एक IP पर संदिग्ध गतिविधि जमा होगी और बैन मिलेगा।

प्रॉक्सी रोटेशन के प्रकार

1. अनुरोधों द्वारा रोटेशन (rotating proxies)। IP प्रत्येक अनुरोध के बाद या निर्धारित संख्या के अनुरोधों के बाद स्वचालित रूप से बदल जाता है। अधिकांश रेजिडेंशियल प्रॉक्सी प्रदाता यह मोड प्रदान करते हैं: आप एक एंडपॉइंट से कनेक्ट होते हैं (उदाहरण के लिए, gate.proxycove.com:8000), और IP प्रदाता की ओर से बदल जाता है।

फायदे: सेटअप में आसानी, मैन्युअल रूप से IP पूल को प्रबंधित करने की आवश्यकता नहीं, एक IP के ब्लॉक होने का न्यूनतम जोखिम।
नुकसान: सत्रों को नियंत्रित नहीं किया जा सकता (यदि कुकीज़ या टोकन को सहेजने की आवश्यकता है), प्रत्येक अनुरोध = नया IP = नए ट्रैफ़िक खर्च।

2. Sticky sessions (सत्र प्रॉक्सी)। IP एक निश्चित समय (आमतौर पर 10-30 मिनट) के लिए आपके सत्र से जुड़ा होता है। आप एक IP से कई अनुरोध करते हैं, फिर यह स्वचालित रूप से बदल जाता है। प्रॉक्सी पैरामीटर के माध्यम से कॉन्फ़िगर किया जाता है (उदाहरण के लिए, लॉगिन में session-id123 जोड़ना)।

फायदे: सत्र के भीतर कुकीज़ और टोकन को सहेजा जा सकता है, कम ट्रैफ़िक खर्च (एक IP = कई अनुरोध)।
नुकसान: यदि सत्र के दौरान IP बैन हो जाता है, तो इस सत्र में सभी बाद के अनुरोध ब्लॉक हो जाएंगे।

3. पूल से मैन्युअल रोटेशन। आप IP पतों की सूची प्राप्त करते हैं (उदाहरण के लिए, 1000) और पार्सर कोड में रोटेशन को प्रबंधित करते हैं: सूची से एक यादृच्छिक IP चुनें, N अनुरोध करें, अगले पर स्विच करें। डेटासेंटर प्रॉक्सी के लिए विशिष्ट।

फायदे: रोटेशन पर पूर्ण नियंत्रण, पूल से ब्लॉक किए गए IP को बाहर किया जा सकता है।
नुकसान: कोड में रोटेशन लॉजिक लिखने की आवश्यकता, IP की स्थिति को प्रबंधित करना (कौन से उपयोग किए गए, कौन से ब्लॉक किए गए)।

ट्रैवल साइटों के लिए अनुशंसित रोटेशन आवृत्ति

साइट प्रॉक्सी प्रकार रोटेशन आवृत्ति 1 IP से अधिकतम अनुरोध
Booking.com रेजिडेंशियल 3-5 अनुरोधों के बाद 5-7
Expedia रेजिडेंशियल 5-8 अनुरोधों के बाद 8-10
Airbnb रेजिडेंशियल/मोबाइल 2-4 अनुरोधों के बाद 3-5
Aviasales रेजिडेंशियल/डेटासेंटर 10-15 अनुरोधों के बाद 15-20
Skyscanner रेजिडेंशियल/डेटासेंटर 8-12 अनुरोधों के बाद 12-15
Kayak रेजिडेंशियल 5-10 अनुरोधों के बाद 10-12

महत्वपूर्ण: ये औसत मान हैं। वास्तविक सीमाएं दिन के समय (रात में एंटी-बॉट सिस्टम सख्त होते हैं), अनुरोध के प्रकार (एयरलाइन टिकट खोज = API पर अधिक भार, होटल देखने की तुलना में), ब्राउज़र अनुकरण की गुणवत्ता पर निर्भर करती हैं। रूढ़िवादी मानों (IP पर कम अनुरोध) से शुरू करें, फिर धीरे-धीरे बढ़ाएं, ब्लॉकिंग के प्रतिशत को ट्रैक करते हुए।

प्रॉक्सी जियोटार्गेटिंग: IP पते का देश और शहर क्यों महत्वपूर्ण है

ट्रैवल साइटें उपयोगकर्ता के जियोलोकेशन के आधार पर अलग-अलग कीमतें दिखाती हैं। यह बग नहीं, बल्कि व्यवसाय मॉडल है: एयरलाइंस और होटल विभिन्न बाजारों के लिए अलग-अलग दरें निर्धारित करते हैं। उदाहरण के लिए, मॉस्को-न्यूयॉर्क टिकट रूस के उपयोगकर्ता के लिए $600 और अमेरिका के उपयोगकर्ता के लिए $750 (करों, प्रतिस्पर्धा, क्रय शक्ति के कारण) हो सकता है।

साइटें जियोलोकेशन कैसे निर्धारित करती हैं

1. IP पते द्वारा। मुख्य विधि। साइटें GeoIP डेटाबेस (MaxMind, IP2Location) का उपयोग करती हैं, जो IP को शहर, क्षेत्र, देश से मिलाते हैं। शहर निर्धारण की सटीकता — 70-90%, देश — 95-99%।

2. ब्राउज़र भाषा और टाइम ज़ोन द्वारा। यदि IP जर्मनी दिखाता है, लेकिन ब्राउज़र भाषा — रूसी, और टाइम ज़ोन — UTC+3 (मॉस्को) — यह प्रॉक्सी का संकेत है। साइट कैप्चा दिखा सकती है या अनुरोध को ब्लॉक कर सकती है।

3. मुद्रा और खाता सेटिंग्स द्वारा। यदि आप Booking खाते में लॉग इन हैं, तो साइट ने पंजीकरण के समय आपका देश याद रखा है। दूसरे देश में IP बदलने से संदेह पैदा होगा — Booking पहचान की पुष्टि करने या खाता ब्लॉक करने के लिए कह सकता है।

प्रॉक्सी जियोलोकेशन को सही तरीके से कैसे चुनें

विशिष्ट बाजार की कीमतों के संग्रह के लिए: उस देश के IP का उपयोग करें जिसकी कीमतें आपको रुचि रखती हैं। यदि आप रूसी बाजार के लिए कीमतों की निगरानी करते हैं — रूसी रेजिडेंशियल प्रॉक्सी लें। यूरोपीय बाजार के लिए — यूरोपीय संघ के देशों से प्रॉक्सी (जर्मनी, फ्रांस, पोलैंड)। अमेरिका के लिए — अमेरिकी प्रॉक्सी।

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

वैश्विक डेटा की पार्सिंग के लिए: यदि आपको सभी बाजारों के लिए कीमतों की आवश्यकता है (उदाहरण के लिए, विश्लेषण के लिए), तो विभिन्न देशों से प्रॉक्सी के पूल का उपयोग करें। IP के साथ जियोलोकेशन को रोटेट करें: जर्मन IP से अनुरोध → जर्मन कीमतें, फ्रेंच IP से अनुरोध → फ्रेंच कीमतें।

गलती: एक देश के IP का उपयोग करना, लेकिन दूसरे देश में होटल/टिकट खोजना जिसकी मुद्रा मेल नहीं खाती। उदाहरण के लिए, रूस से IP, थाईलैंड में होटल खोज, मुद्रा — यूरो। यह संदिग्ध लगता है। या तो गंतव्य देश के IP का उपयोग करें, या अपने वास्तविक देश के IP को उसकी मुद्रा के साथ।

लोकप्रिय पार्सर्स और स्क्रिप्ट्स के लिए प्रॉक्सी सेटअप

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

Python + requests / httpx

JavaScript के बिना API या सरल पृष्ठों की पार्सिंग के लिए सबसे सरल विकल्प। Aviasales API, Skyscanner API, Cloudflare के बिना सरल एंडपॉइंट्स के लिए उपयुक्त।

import requests

# प्रॉक्सी डेटा (अपने से बदलें)
proxy_host = "gate.proxycove.com"
proxy_port = "8000"
proxy_user = "your_username"
proxy_pass = "your_password"

proxies = {
    "http": f"http://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}",
    "https": f"http://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}"
}

# ब्राउज़र हेडर (अनिवार्य!)
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
    "Accept-Language": "en-US,en;q=0.9",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Referer": "https://www.google.com/"
}

# प्रॉक्सी के माध्यम से अनुरोध
response = requests.get(
    "https://www.aviasales.com/search",
    proxies=proxies,
    headers=headers,
    timeout=30
)

print(response.status_code)
print(response.text[:500])  # प्रतिक्रिया के पहले 500 वर्ण

महत्वपूर्ण: रोटेशन के साथ रेजिडेंशियल प्रॉक्सी के लिए प्रत्येक नया अनुरोध स्वचालित रूप से एक नया IP प्राप्त करेगा। यदि sticky session की आवश्यकता है (कई अनुरोधों के लिए एक IP), तो username में session ID जोड़ें: your_username-session-12345

Selenium (JavaScript वाली साइटों के लिए)

Booking, Expedia, Airbnb सामग्री रेंडरिंग और एंटी-बॉट जाँच के लिए सक्रिय रूप से JavaScript का उपयोग करते हैं। Selenium वास्तविक ब्राउज़र का अनुकरण करता है, लेकिन पहचान से बचने के लिए अतिरिक्त सेटिंग्स की आवश्यकता होती है।

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service

# Chrome सेटिंग्स
chrome_options = Options()

# प्रॉक्सी
proxy_host = "gate.proxycove.com"
proxy_port = "8000"
proxy_user = "your_username"
proxy_pass = "your_password"

# Chrome के लिए प्रॉक्सी प्रारूप
chrome_options.add_argument(f'--proxy-server=http://{proxy_host}:{proxy_port}')

# स्वचालन छिपाएं
chrome_options.add_argument('--disable-blink-features=AutomationControlled')
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)

# User-Agent
chrome_options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36')

driver = webdriver.Chrome(options=chrome_options)

# webdriver property हटाएं
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")

# प्रॉक्सी प्रमाणीकरण (यदि आवश्यक हो)
# Chrome के लिए प्रमाणीकरण के साथ एक्सटेंशन बनाना आवश्यक है, selenium-wire देखें या Puppeteer का उपयोग करना आसान है

driver.get("https://www.booking.com/")
print(driver.title)
driver.quit()

समस्या: Chrome सीधे login:password के माध्यम से प्रॉक्सी प्रमाणीकरण का समर्थन नहीं करता। समाधान: selenium-wire लाइब्रेरी का उपयोग करें (प्रमाणीकरण के साथ प्रॉक्सी जोड़ता है), प्रमाणीकरण के लिए Chrome एक्सटेंशन बनाएं, या Puppeteer (Node.js) का उपयोग करें।

Puppeteer (Node.js) — जटिल साइटों के लिए सर्वोत्तम विकल्प

Puppeteer Selenium की तुलना में ब्राउज़र का बेहतर अनुकरण करता है, और प्रॉक्सी प्रमाणीकरण के साथ आसानी से कॉन्फ़िगर किया जाता है। Booking, Airbnb, Expedia के लिए अनुशंसित।

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    headless: true,
    args: [
      '--proxy-server=http://gate.proxycove.com:8000',
      '--disable-blink-features=AutomationControlled',
      '--no-sandbox'
    ]
  });

  const page = await browser.newPage();

  // प्रॉक्सी प्रमाणीकरण
  await page.authenticate({
    username: 'your_username',
    password: 'your_password'
  });

  // webdriver छिपाएं
  await page.evaluateOnNewDocument(() => {
    Object.defineProperty(navigator, 'webdriver', {
      get: () => undefined
    });
  });

  // User-Agent
  await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36');

  await page.goto('https://www.booking.com/', { waitUntil: 'networkidle2' });
  
  const title = await page.title();
  console.log('Title:', title);

  await browser.close();
})();

पहचान से और भी बेहतर सुरक्षा के लिए puppeteer-extra-plugin-stealth प्लगइन का उपयोग करें — यह स्वचालन के सभी संकेतों को स्वचालित रूप से छिपाता है।

तैयार समाधान: Scrapy, Crawlee

Scrapy (Python) — बड़े पैमाने पर पार्सिंग के लिए फ्रेमवर्क। middleware के माध्यम से प्रॉक्सी का समर्थन करता है। settings.py में सेटअप का उदाहरण:

# settings.py
DOWNLOADER_MIDDLEWARES = {
    'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 1,
}

# spider में
class TravelSpider(scrapy.Spider):
    def start_requests(self):
        proxy = "http://your_username:your_password@gate.proxycove.com:8000"
        yield scrapy.Request(
            url="https://www.aviasales.com/",
            meta={'proxy': proxy},
            callback=self.parse
        )

Crawlee (Node.js) — अंतर्निहित प्रॉक्सी रोटेशन, एंटी-बॉट सिस्टम बायपास, स्वचालित retry के साथ आधुनिक फ्रेमवर्क। ट्रैवल साइटों के लिए बिल्कुल उपयुक्त।

Cloudflare, PerimeterX, Akamai एंटी-बॉट सिस्टम को बायपास करना

गुणवत्ता वाली रेजिडेंशियल प्रॉक्सी के साथ भी आप ब्लॉकिंग का सामना कर सकते हैं, यदि आप एंटी-बॉट सिस्टम को सही तरीके से बायपास नहीं करते। Booking Cloudflare का उपयोग करता है, Airbnb — PerimeterX, कुछ साइटें — Akamai Bot Manager। ये सिस्टम न केवल IP, बल्कि व्यवहार, ब्राउज़र fingerprint, TLS हैंडशेक का भी विश्लेषण करते हैं।

Cloudflare: बायपास के मुख्य तरीके

1. ब्राउज़र स्वचालन का उपयोग करें। Cloudflare JavaScript-challenge की जाँच करता है, जो ब्राउज़र में निष्पादित होता है। सरल HTTP अनुरोध (requests, curl) जाँच पास नहीं करेंगे। सही सेटिंग्स के साथ Puppeteer, Playwright या Selenium की आवश्यकता है।

2. स्वचालन के संकेत छिपाएं। puppeteer-extra-plugin-stealth (Node.js) या undetected-chromedriver (Python) इंस्टॉल करें। ये लाइब्रेरी ब्राउज़र को पैच करती हैं, navigator.webdriver, window.chrome प्रॉपर्टी को हटाती हैं, permissions API को बदलती हैं।

3. सही TLS fingerprint। Cloudflare TLS हैंडशेक का विश्लेषण करता है। ब्राउज़र TLS का अनुकरण करने वाली लाइब्रेरी का उपयोग करें: curl-impersonate (Chrome/Firefox TLS का अनुकरण करता है), tls-client (Go), hrequests (Python)।

4. कैप्चा को स्वचालित रूप से हल करें। यदि Cloudflare कैप्चा (Turnstile) दिखाता है, तो कैप्चा समाधान सेवाओं का उपयोग करें: 2Captcha, Anti-Captcha, CapSolver। वे API के माध्यम से एकीकृत होते हैं और 1000 समाधानों के लिए $1-3 खर्च होते हैं।

PerimeterX (Airbnb, कुछ ट्रैवल साइटें)

PerimeterX — सबसे जटिल एंटी-बॉट सिस्टम में से एक। यह उपयोगकर्ता के व्यवहार (माउस मूवमेंट, क्लिक, स्क्रॉलिंग) का विश्लेषण करता है, डिवाइस fingerprint बनाता है, कुकीज़ और localStorage की जाँच करता है।

बायपास के तरीके:

1. उपयोगकर्ता व्यवहार का अनुकरण करें। क्रियाओं के बीच यादृच्छिक विराम जोड़ें (2-5 सेकंड), माउस को हिलाएं, पृष्ठ को स्क्रॉल करें। Puppeteer में यथार्थवादी माउस मूवमेंट के लिए ghost-cursor लाइब्रेरी का उपयोग करें।

2. कुकीज़ और localStorage को सहेजें। PerimeterX टोकन उत्पन्न करता है जो कुकीज़ (_px3, _pxhd) और localStorage में संग्रहीत होते हैं। यदि आप IP बदलते हैं, लेकिन कुकीज़ को सहेजते हैं — यह संदिग्ध है। या तो IP बदलें + कुकीज़ साफ़ करें, या sticky sessions का उपयोग करें (एक IP = कुकीज़ के साथ एक सत्र)।

3. मोबाइल प्रॉक्सी का उपयोग करें। PerimeterX डेटासेंटर IP के प्रति सख्त है। मोबाइल प्रॉक्सी PerimeterX को बायपास करने के लिए बेहतर परिणाम दिखाती हैं।

Akamai Bot Manager

Akamai सेंसर डेटा (मोबाइल पर एक्सेलेरोमीटर, गायरोस्कोप), WebGL fingerprint, ऑडियो कॉन्टेक्स्ट, डिवाइस प्रदर्शन का विश्लेषण करता है। बायपास के लिए उन्नत ब्राउज़र अनुकरण की आवश्यकता होती है।

सिफारिशें: वास्तविक ब्राउज़र (headless नहीं) का उपयोग करें, मोबाइल प्रॉक्सी, यादृच्छिक देरी जोड़ें, सेंसर इवेंट (touch events) का अनुकरण करें। जटिल मामलों के लिए — ब्राउज़र फार्म (BrowserStack, LambdaTest) या एंटी-डिटेक्ट ब्राउज़र (AdsPower, Multilogin) का उपयोग करें।

प्रॉक्सी के माध्यम से ट्रैवल साइटों की पार्सिंग में सामान्य गलतियाँ

अनुभवी डेवलपर्स भी गलतियाँ करते हैं जो ब्लॉकिंग का कारण बनती हैं। यहाँ सबसे आम समस्याएं और उनके समाधान हैं।

गलती 1: सभी अनुरोधों के लिए एक User-Agent का उपयोग

यदि आपके सभी अनुरोध एक ही User-Agent के साथ आते हैं (उदाहरण के लिए, मानक Python requests: python-requests/2.28.0), तो यह तुरंत बॉट को उजागर करता है। भले ही आप IP बदलते हों, साइट समान UA देखती है और अनुरोधों को जोड़ती है।

समाधान: वास्तविक ब्राउज़र User-Agent (Chrome, Firefox, Safari) की सूची का उपयोग करें और उन्हें रोटेट करें। fake-useragent लाइब्रेरी (Python) स्वचालित रूप से यादृच्छिक UA उत्पन्न करती है।

गलती 2: अनुरोधों की बहुत अधिक गति

पार्सर प्रति सेकंड 100 अनुरोध करता है — यह मनुष्य के लिए शारीरिक रूप से असंभव है। विभिन्न IP के साथ भी एंटी-बॉट सिस्टम पैटर्न द्वारा असामान्य गतिविधि का पता लगाते हैं (सभी अनुरोध ठीक 0.01 सेकंड के बाद आते हैं)।

समाधान: अनुरोधों के बीच यादृच्छिक देरी जोड़ें: time.sleep(random.uniform(2, 5))। ट्रैवल साइटों के लिए इष्टतम: एक IP से अनुरोधों के बीच 2-5 सेकंड, विभिन्न IP से अनुरोधों के बीच 0.5-2 सेकंड।

गलती 3: कुकीज़ और सत्रों की उपेक्षा

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

समाधान: requests.Session() (Python) का उपयोग करें या Puppeteer में अनुरोधों के बीच कुकीज़ को सहेजें। sticky sessions (एक IP = कई अनुरोध) के लिए कुकीज़ को सहेजना अनिवार्य है।

गलती 4: IP के जियोलोकेशन और ब्राउज़र पैरामीटर का बेमेल

जर्मनी से IP, लेकिन ब्राउज़र भाषा — रूसी, टाइम ज़ोन — UTC+3, मुद्रा — रूबल। एंटी-बॉट सिस्टम यह बेमेल देखते हैं और अनुरोध को ब्लॉक करते हैं।

समाधान: ब्राउज़र पैरामीटर को प्रॉक्सी जियोलोकेशन के साथ सिंक्रनाइज़ करें। यदि आप जर्मन IP का उपयोग करते हैं — जर्मन भाषा सेट करें (Accept-Language: de-DE), टाइम ज़ोन Europe/Berlin, मुद्रा EUR।

गलती 5: मुफ्त या निम्न-गुणवत्ता वाली प्रॉक्सी का उपयोग

मुफ्त प्रॉक्सी और सस्ती सार्वजनिक प्रॉक्सी पहले से ही सभी प्रमुख ट्रैवल साइटों पर ब्लॉक हैं। उनके IP ब्लैकलिस्ट में सूचीबद्ध हैं, खराब प्रतिष्ठा है (स्पैम, DDoS के लिए उपयोग किए गए)।

समाधान: सत्यापित प्रदाताओं से गुणवत्ता वाली रेजिडेंशियल या मोबाइल प्रॉक्सी का उपयोग करें। उपयोग से पहले IPQualityScore, Scamalytics सेवाओं के माध्यम से IP प्रतिष्ठा की जाँच करें।

पार्सर लॉन्च करने से पहले चेकलिस्ट:
✅ प्रॉक्सी — रेजिडेंशियल या मोबाइल, आवश्यक जियोलोकेशन के साथ
✅ User-Agent — वास्तविक ब्राउज़र, रोटेट होता है
✅ कुकीज़ — सत्र के भीतर सहेजी जाती हैं
✅ देरी — अनुरोधों के बीच 2-5 सेकंड
✅ IP रोटेशन — 3-10 अनुरोधों के बाद (साइट पर निर्भर करता है)
✅ जियोलोकेशन — IP देश ब्राउज़र भाषा और टाइम ज़ोन से मेल खाता है
✅ एंटी-बॉट बायपास — Stealth प्लगइन्स, TLS फिंगरप्रिंट, व्यवहार अनुकरण

निष्कर्ष

ट्रैवल एग्रीगेटर्स पर कीमतों की सफल निगरानी के लिए प्रॉक्सी, ब्राउज़र अनुकरण और एंटी-बॉट सिस्टम को बायपास करने के लिए एक एकीकृत दृष्टिकोण की आवश्यकता होती है। मुख्य सिफारिशें:

  • Booking, Expedia, Airbnb जैसी सुरक्षित साइटों के लिए रेजिडेंशियल या मोबाइल प्रॉक्सी का उपयोग करें
  • साइट की सुरक्षा के स्तर के आधार पर IP रोटेशन को समायोजित करें (3-15 अनुरोधों के बाद)
  • जियोलोकेशन को सिंक्रनाइज़ करें: IP देश = ब्राउज़र भाषा = टाइम ज़ोन = मुद्रा
  • Puppeteer Stealth, undetected-chromedriver के साथ स्वचालन के संकेत छिपाएं
  • अनुरोधों के बीच यादृच्छिक देरी जोड़ें (2-5 सेकंड)
  • सत्रों के भीतर कुकीज़ और टोकन को सहेजें
  • लागत को अनुकूलित करने के लिए प्रॉक्सी प्रकारों को मिलाएं

सही प्रॉक्सी और सेटअप के साथ, आप ब्लॉकिंग के बिना महीनों तक कीमतों की निगरानी कर सकते हैं, विश्वसनीय डेटा प्राप्त कर सकते हैं और अपने ट्रैवल सेवा या विश्लेषण प्लेटफ़ॉर्म को प्रतिस्पर्धात्मक लाभ दे सकते हैं।

```