Cloudflare से सुरक्षित साइट कैसे स्क्रैप करें (2026 गाइड)
Cloudflare सार्वजनिक वेब के एक बड़े हिस्से के सामने बैठा है, इसलिए जो स्क्रैपर एक साइट पर काम करता है वह अगली साइट पर अक्सर दीवार से टकराता है। आप आम तौर पर इसे HTTP 403 या 503, "Just a moment..." इंटरस्टीशियल, या पेज पर Turnstile चेकबॉक्स के रूप में देखते हैं। यह गाइड बताती है कि Cloudflare क्या जांचता है, वे सुधार जो बिना उन चीज़ों को छुए काम करते हैं जिन्हें आपको नहीं छूना चाहिए, और कैप्चा सॉल्विंग कहां आती है। छोटा जवाब: पक्का करें कि आपको साइट स्क्रैप करने की अनुमति है, धीमे चलें, ऐसी रिक्वेस्ट भेजें जो एक सामान्य क्लाइंट जैसी लगें, जब पेज को JavaScript चाहिए तो असली ब्राउज़र इस्तेमाल करें, और केवल उसके बाद कैप्चा से निपटें। Turnstile वह कैप्चा है जिसे Cloudflare सबसे ज़्यादा इस्तेमाल करता है। Turnstile के लिए Scarnox सपोर्ट जल्द आ रहा है। आज लाइव कैप्चा टाइप PopularCaptcha है।
Cloudflare क्या जांचता है
Cloudflare हर रिक्वेस्ट को कई सिग्नलों पर स्कोर करता है:
- IP की प्रतिष्ठा। क्लाउड डेटा सेंटर के पते होम कनेक्शन के पतों से कम स्कोर के साथ शुरू होते हैं।
- रिक्वेस्ट दर और पैटर्न। एक पते से हर सेकंड सैकड़ों रिक्वेस्ट बॉट जैसी लगती हैं, चाहे हेडर कुछ भी कहें।
- हेडर और TLS फ़िंगरप्रिंट। एक साधारण HTTP लाइब्रेरी अक्सर ऐसे हेडर, हेडर के क्रम और TLS हैंडशेक भेजती है जो कोई मुख्यधारा का ब्राउज़र नहीं भेजता।
- JavaScript का निष्पादन। चैलेंज पेज स्क्रिप्ट चलाता है और जांचता है कि असली ब्राउज़र वातावरण मौजूद है।
- कुकीज़। चैलेंज पास होने के बाद Cloudflare उस सत्र से बंधी एक clearance कुकी जारी करता है।
ऊंचा स्कोर चुपचाप पास हो जाता है। मध्यम स्कोर को एक इंटरैक्टिव चैलेंज मिलता है। कम स्कोर पर ब्लॉक। ज़्यादातर काम जांच से लड़ने के बजाय एक अच्छे व्यवहार वाले क्लाइंट की तरह बर्ताव करके अपना स्कोर बढ़ाने का है।
चरण 1: जांचें कि आपको साइट स्क्रैप करनी चाहिए
कोई भी तकनीकी काम करने से पहले साइट की robots.txt और सेवा की शर्तें पढ़ें। ब्लॉक अक्सर मालिक का आपको कुछ बताने का तरीका होता है। सार्वजनिक पेज धीरे और एक साफ़ उद्देश्य के लिए स्क्रैप करना एक बात है। मालिक द्वारा प्रतिबंधित डेटा तक पहुंचने के लिए ब्लॉक को जबरन पार करना दूसरी बात है, और वह ऐसा उपयोग है जिसे Scarnox सपोर्ट नहीं करता। सामान्य सवालों के लिए कानूनी अवलोकन देखें।
चरण 2: सादी रिक्वेस्ट सही करें
कई स्क्रैपर जो "ब्लॉक" दिखते हैं, वे बस खराब रिक्वेस्ट भेज रहे होते हैं। इन्हें पहले ठीक करें:
- एक अद्यतन User-Agent और वे हेडर भेजें जो एक ब्राउज़र भेजता, जैसे
AcceptऔरAccept-Language। - एक session ऑब्जेक्ट रखें ताकि रिक्वेस्ट के बीच कुकीज़ बनी रहें, जैसे एक ब्राउज़र रखता है।
- रिक्वेस्ट के बीच थोड़ी देरी जोड़ें, थोड़े रैंडम जिटर के साथ।
429और503रिस्पॉन्स पर पीछे हटें, तंग लूप में रिट्राई न करें।
import random
import time
import requests
session = requests.Session()
session.headers.update({
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
"(KHTML, like Gecko) Chrome/124.0 Safari/537.36",
"Accept-Language": "en-US,en;q=0.9",
})
def polite_get(url: str, attempts: int = 4) -> requests.Response:
r = None
for attempt in range(attempts):
r = session.get(url, timeout=30)
if r.status_code not in (429, 503):
return r
# जिटर के साथ exponential backoff: लगभग 1, 2, 4 सेकंड plus noise।
time.sleep(2 ** attempt + random.uniform(0, 1))
return r
अगर इससे आप पास हो जाते हैं, तो काम हो गया। देरी को वैसे ही रहने दें।
चरण 3: पता करें कि आपके सामने कौन सी चुनौती है
रिस्पॉन्स आपको बहुत कुछ बताता है:
- "Just a moment..." पेज। यह एक JavaScript चैलेंज है। असली ब्राउज़र आम तौर पर कुछ सेकंड बाद इसे अपने आप पास कर लेता है। उसके बाद clearance कुकी उसी सत्र की बाद की रिक्वेस्ट में दोबारा इस्तेमाल हो सकती है।
- किसी फॉर्म या पेज पर Turnstile विजेट। यह एक कैप्चा है। फॉर्म सबमिशन स्वीकार करने से पहले उसे विजेट से टोकन चाहिए।
- एरर कोड वाला ब्लॉक पेज। पता या रिक्वेस्ट को सीधे मना किया गया है। अपनी गति बदलना और रिक्वेस्ट ठीक करना आम तौर पर बाकी किसी भी चीज़ से ज़्यादा मदद करता है। सॉल्विंग से कठोर ब्लॉक डेटा में नहीं बदलता।
यह जांचना कि इनमें से कौन सा दिख रहा है, बहुत सारी बेकार मेहनत बचाता है।
चरण 4: जब पेज को ज़रूरत हो तब असली ब्राउज़र इस्तेमाल करें
अगर पेज केवल JavaScript चलने के बाद कंटेंट दिखाता है, तो सादा HTTP क्लाइंट उसे कभी नहीं देखेगा। उसके बजाय Playwright या Selenium से पूरा ब्राउज़र चलाएं। Headless ब्राउज़र पहचाना जा सकता है, इसलिए उस पर भरोसा करने से पहले headless ब्राउज़र डिटेक्शन पढ़ें, और उसे उस वातावरण से मेल खाने के लिए सेट करें जिसमें एक असली विज़िटर होता। पूरा उदाहरण JavaScript साइट गाइड में है।
चरण 5: अपने IP की प्रतिष्ठा देखें
साफ़ रिक्वेस्ट को कम स्कोर मिलने का सबसे आम कारण क्लाउड डेटा सेंटर के पते हैं। रेज़िडेंशियल पते आम तौर पर बेहतर स्कोर करते हैं, पर गति और पैसे की ज़्यादा कीमत पर। इस व्यापार-विनिमय को रेज़िडेंशियल बनाम डेटासेंटर प्रॉक्सी में समझाया गया है।
रोटेशन की अपनी जाल-परतें हैं। हर रिक्वेस्ट पर पता बदलना अस्वाभाविक लगता है, क्योंकि एक असली विज़िटर पूरी विज़िट के लिए एक ही पता रखता है। Sticky sessions, जहां संबंधित रिक्वेस्ट के एक समूह के लिए एक पता रखा जाता है, अक्सर तेज़ रोटेशन से बेहतर काम करते हैं। स्क्रैपिंग के लिए रोटेटिंग प्रॉक्सी में विवरण हैं।
चरण 6: कैप्चा सॉल्विंग कहां आती है
कभी-कभी विजेट सचमुच दिखता है, उस फॉर्म पर जिसकी आप टेस्टिंग कर रहे हैं या उस पेज पर जिसे स्वचालित करने की आपको अनुमति है। तब Turnstile टोकन उस फ़्लो का एक ज़रूरी चरण है। Turnstile के लिए Scarnox सपोर्ट जल्द आ रहा है, इसलिए अभी उसके खिलाफ़ प्रोडक्शन कोड न बनाएं। आज का लाइव कैप्चा टाइप PopularCaptcha है, जो एक अलग विजेट इस्तेमाल करता है।
किसी भी टोकन-आधारित कैप्चा का सामान्य वर्कफ़्लो एक ही है। आप पेज से sitekey पढ़ते हैं, टोकन मांगते हैं, और टोकन को उस फॉर्म फ़ील्ड में रखते हैं जिसकी साइट को उम्मीद है। टोकन अल्पकालिक होते हैं, इसलिए उन्हें तुरंत सबमिट करें। PopularCaptcha Python गाइड इस वर्कफ़्लो को शुरू से अंत तक दिखाती है, और कैप्चा के प्रकार समझाए गए में आपको मिलने वाले विजेट की तुलना है।
Turnstile सपोर्ट लाइव होने के लिए तैयार रहना चाहते हैं, तो अभी मुफ्त ट्रायल शुरू कर सकते हैं। मुफ्त ट्रायल क्रेडिट के साथ शुरू करें, कार्ड की ज़रूरत नहीं: खाता बनाएं। लाइव कैप्चा टाइप की मौजूदा दरों के लिए प्राइसिंग पेज देखें।
ज़िम्मेदारी से स्क्रैप करें
robots.txtपढ़ें और जिस साइट को स्क्रैप करते हैं उसकी शर्तों का सम्मान करें।- अपने क्रॉलर की दर सीमित करें, और जहां संभव हो ऑफ-पीक घंटों में चलाएं।
- रिस्पॉन्स कैश करें, ताकि बिना कारण एक ही पेज दोबारा न लाएं।
- बिना कानूनी आधार के व्यक्तिगत डेटा इकट्ठा करने से बचें।
- अगर किसी साइट ने एक्सेस प्रतिबंधित किया है, तो रुक जाएं। उस प्रतिबंध को पार करने की कोशिश न करें।