कैसे क्लाउडफ्लेयर को Node.js (Puppeteer + Scrapeless) के साथ हल करें
Advanced Bot Mitigation Engineer
TL;DR:
- Cloudflare ब्राउज़र को रेट करता है, विज़िटर को नहीं। यह फिंगरप्रिंट स्थिरता, व्यवहार संबंधी संकेतों और निकासी IP को पढ़ता है, फिर एक सुरक्षित ब्राउज़र के लिए
cf_clearanceकुकी सेट करता है — इसलिए Node.js में इसे साफ़ करना एक विश्वसनीय ब्राउज़र होना है, पहेली का उत्तर नहीं देना। - एक स्थानीय Node.js ब्राउज़र तीन अक्षों पर उस स्कोरिंग में असफल होता है:
navigator.webdriverका संकेत, हेडलेस-डिफ़ॉल्ट फिंगरप्रिंट, और एक डेटा सेंटर निकासी IP। तीनों को पैच करने के लिए स्टैकिंग स्टेल्थ प्लगइन्स एक रखरखाव का चक्र है। - स्क्रेपलेस स्क्रेपिंग ब्राउज़र रेंडर के दौरान चुनौती को साफ करता है — असली स्व-विकसित क्रोमियम, प्रति-सत्र स्थिर फिंगरप्रिंट, और 195+ देशों में आवासीय निकासी, एक वेब-सॉकेट एंडपॉइंट पर पहुंचा।
- आपका Node.js मानक Puppeteer बना रहता है।
puppeteer.connect()के साथ कनेक्ट करें, चुनौती के बाद के सामग्री की प्रतीक्षा करें, और पृष्ठ पढ़ें — एकमात्र परिवर्तन कनेक्शन URL है। - सत्यापित लाइव: एक क्लाउड ब्राउज़र पर Puppeteer सत्र ने Cloudflare चुनौती पृष्ठ को साफ किया, सफलता मार्कर
आपने Cloudflare चुनौती को बाईपास किया! :Dपढ़ा, और एकcf_clearanceकुकी प्राप्त की। - शुरू करने के लिए फ्री। नए स्क्रेपलेस खातों में मुफ्त स्क्रेपिंग ब्राउज़र रनटाइम शामिल है — app.scrapeless.com पर साइन अप करें।
परिचय: Node.js में Cloudflare को साफ करना एक ब्राउज़र समस्या है
Cloudflare की चुनौती एक छवि CAPTCHA नहीं है जिसे आप डिकोड करते हैं। यह बैकग्राउंड में चलता है और उस ब्राउज़र को रेट करता है जिसने पृष्ठ लोड किया — चाहे फिंगरप्रिंट आंतरिक रूप से स्थिर हो, चाहे इंटरैक्शन संकेत मानव की तरह दिखें, और चाहे निकासी IP की एक साफ़ प्रतिष्ठा हो। जब स्कोर पास होता है, Cloudflare एक cf_clearance कुकी सेट करता है और असली पृष्ठ लोड होता है। जब ऐसा नहीं होता है, तो आपको सामग्री के बजाय एक इंटरस्टिशियल मिलता है।
यह Node.js कार्य को पुनः परिभाषित करता है। जमा करने के लिए कोई उत्तर नहीं है — काम एक ऐसा ब्राउज़र प्रस्तुत करना है जिसे Cloudflare पहले से ही विश्वसनीय मानता है। Puppeteer द्वारा संचालित एक स्थानीय हेडलेस क्रोमियम ऐसा नहीं कर सकता: यह navigator.webdriver प्रॉपर्टी के माध्यम से स्वचालन की घोषणा करता है, हेडलेस-डिफ़ॉल्ट फ़ॉन्ट और कैनवास व्यवहार भेजता है, और एक IP प्रतिष्ठा सेवाओं से बाहर निकलता है जो पहले से ही जानती हैं। आप एक स्टेल्थ प्लगइन जोड़ सकते हैं और फिर जैसे-जैसे क्रोमियम और डिटेक्टर्स चलते हैं, पैच करते रह सकते हैं। यह गाइड छोटा रास्ता अपनाती है: स्क्रेपलेस स्क्रेपिंग ब्राउज़र को मानक Puppeteer से चलाएं, ताकि फिंगरप्रिंट, व्यवहार और निकासी IP सर्वर-साइड संभाले जाएं और चुनौती एक सामान्य रेंडर के दौरान साफ हो।
Cloudflare वास्तव में क्या चेक करता है
Cloudflare का अपना दस्तावेज़ीकरण एक सत्यापन चरण का वर्णन करता है जो विज़िटर को बाधित किए बिना चलता है। प्रैक्टिकल में यह तीन चीजों को रेट करता है और जब वे पास होते हैं तो cf_clearance कुकी देता है — एक मानक HTTP कुकी:
| Cloudflare क्या पढ़ता है | एक स्थानीय Node.js ब्राउज़र इसमें क्यों असफल होता है |
|---|---|
| फिंगरप्रिंट स्थिरता | हेडलेस डिफ़ॉल्ट और webdriver ध्वज एक असली क्रोम के खिलाफ हैं |
| व्यवहार संबंधी संकेत | एक संगठित ब्राउज़र सतह के बिना स्क्रिप्टेड समय |
| निकासी IP प्रतिष्ठा | डेटा सेंटर IP आवासीय ones की तुलना में बदतर स्कोर करता है |
एक संपूर्ण, विश्वसनीय ब्राउज़र किसी भी एकल बचाव से अधिक महत्वपूर्ण है — यही कारण है कि सभी तीनों को सर्वर-साइड स्थानांतरित करना स्टेल्थ प्लगइन्स के ढेर लगाने से अधिक टिकाऊ है।
स्क्रेपलेस स्क्रेपिंग ब्राउज़र क्यों
स्क्रेपलेस स्क्रेपिंग ब्राउज़र एक अनुकूलन योग्य, एंटी-डिटेक्शन क्लाउड ब्राउज़र है जिसे वेब क्रॉलर और AI एजेंटों के लिए डिजाइन किया गया है। विशेष रूप से Cloudflare के लिए, यह लाता है:
- असली स्व-विकसित क्रोमियम जो चुनौती JavaScript को ठीक वैसे ही चलाता है जैसे कि क्रोम, इसलिए यह अटका नहीं बल्कि हल करता है।
- एक स्थिर प्रति-सत्र फिंगरप्रिंट — कोई
navigator.webdriverसंकेत नहीं, कोई हेडलेस डिफ़ॉल्ट नहीं जो रिसाव करते हैं। - 195+ देशों में आवासीय निकासी — Cloudflare निकासी IP को रेट करता है, और एक आवासीय क्षेत्र वहां साफ़ पढ़ता है जहां एक डेटा केंद्र IP नहीं करता।
- सत्र स्थिरता ताकि
cf_clearanceअनुदान को उसी सत्र में अनुरोधों के बीच पुन: उपयोग किया जा सके। - एक कनेक्शन सतह — प्रत्येक विकल्प एक ही WebSocket एंडपॉइंट पर एक क्वेरी पैरामीटर है।
फ्री योजना पर अपना API कुंजी प्राप्त करें app.scrapeless.com।
पूर्वापेक्षाएँ
- Node.js 18 या नया
puppeteer-coreस्थापित (कोई बंडल किया गया क्रोमियम नहीं, आप एक दूरस्थ में कनेक्ट करते हैं)- एक स्क्रेपलेस खाता और API कुंजी — app.scrapeless.com पर साइन अप करें
पूर्ण कनेक्शन विवरण स्क्रैपिंग ब्राउज़र दस्तावेज़ में उपलब्ध हैं।
स्थापित करें
आप एक दूरस्थ ब्राउज़र से कनेक्ट करते हैं, इसलिए आपको केवल puppeteer-core (कोई बंडल किया गया क्रोमियम नहीं) की आवश्यकता है।
bash
npm install puppeteer-core
export SCRAPELESS_API_KEY=your_api_token_here # मुफ्त कुंजी https://app.scrapeless.com पर
कनेक्ट करें और चुनौती को स्पष्ट करें
एंडपॉइंट बनाएं, puppeteer.connect() के साथ कनेक्ट करें, नेविगेट करें, और पोस्ट-चुनौती सामग्री के अटैच होने की प्रतीक्षा करें। चुनौती रेंडर के दौरान हल होती है - इसमें कोई अलग हल कॉल नहीं है।
javascript
import puppeteer from "puppeteer-core";
import { URLSearchParams } from "node:url";
const params = new URLSearchParams({
token: process.env.SCRAPELESS_API_KEY,
sessionTTL: "180",
proxyCountry: "US",
});
const endpoint = `wss://browser.scrapeless.com/api/v2/browser?${params}`;
const TARGET = "https://www.scrapingcourse.com/cloudflare-challenge";
const browser = await puppeteer.connect({ browserWSEndpoint: endpoint });
const page = await browser.newPage();
await page.goto(TARGET, { waitUntil: "domcontentloaded", timeout: 90000 });
// क्लाउड ब्राउज़र रेंडर के दौरान क्लाउडफ़्लेयर को स्पष्ट करता है; असली सामग्री के लिए प्रतीक्षा करें।
await page.waitForSelector("#challenge-title", { timeout: 90000 });
console.log("cleared:", await page.$eval("#challenge-title", (el) => el.innerText));
const cookies = await page.cookies();
console.log("cf_clearance:", cookies.some((c) => c.name === "cf_clearance"));
await browser.close();
इस स्क्रिप्ट का एक लाइव रन ने cleared: आप क्लाउडफ़्लेयर चुनौती को बाईपास कर गए! :D और cf_clearance: true प्रिंट किया - मानक Puppeteer, जो क्लाउड ब्राउज़र के माध्यम से लिया गया है।
अपने API कुंजी को मुफ्त योजना पर प्राप्त करें: app.scrapeless.com
पास की पुष्टि करें और क्लियरेंस को ले जाएँ
विश्वसनीय संकेत वास्तव में सामग्री का अटैच होना है - एक बार जब पोस्ट-चुनौती तत्व मौजूद हो, तो पृष्ठ स्पष्ट होता है। क्लाउडफ्लेयर पासिंग सत्र पर एक cf_clearance कुकी भी सेट करता है, जिसे आप उस ही सत्र में अन्य अनुरोधों के लिए क्लियरेंस ले जाने के लिए पढ़ सकते हैं। W3C WebDriver विशिष्टता अपेक्षाकृत स्वचालन को webdriver फ्लैग को उजागर करने की आवश्यकता है; क्लाउड ब्राउज़र इसे कैर्री नहीं करता है, यही कारण है कि पहला चेक साफ पढ़ा जाता है।
javascript
const cookies = await page.cookies();
const clearance = cookies.find((c) => c.name === "cf_clearance");
console.log("cf_clearance उपस्थित है:", Boolean(clearance));
if (clearance) console.log("डोमेन:", clearance.domain);
विश्वसनीय स्पष्टता के लिए क्षेत्र को पिन करें
क्लाउडफ्लेयर निकासी IP को स्कोर करता है, इसलिए proxyCountry को एक आवासीय क्षेत्र पर पिन करें। इसे किसी भी ISO देश कोड में बदलें।
javascript
const params = new URLSearchParams({
token: process.env.SCRAPELESS_API_KEY,
sessionTTL: "180",
proxyCountry: "US", // या "DE", "JP", "ANY"
});
जहां स्थानीय Node.js ब्राउज़र रुकते हैं
एक स्थानीय Puppeteer स्क्रैपर तब तक ठीक है जब तक क्लाउडफ्लेयर ब्राउज़र को स्कोर करना शुरू नहीं करता। तब हेडलेस फिंगरप्रिंट, webdriver फ्लैग, और डाटासेंटर IP हर एक अलग जांच में असफल होते हैं, और इंटरस्टिशल सामग्री को बदल देता है। ये फिंगरप्रिंट, व्यवहार, और IP समस्याएं हैं - तीन जो क्लाउड ब्राउज़र सर्वर-साइड हैंडल करता है। Scrapeless से कनेक्ट करना उन्हें प्रबंधित सत्र को सौंपता है जबकि आपका Puppeteer कोड मानक रहता है।
आपको क्या मिलता है
सत्र किसी भी Puppeteer सत्र की तरह व्यवहार करता है - page.goto, page.waitForSelector, page.content(), और कुकीज़ सभी काम करते हैं। क्लाउड ब्राउज़र के माध्यम से क्लाउडफ्लेयर को स्पष्ट करने से कुछ ईमानदार टिप्पणियां:
navigator.webdriverअनुपस्थित है, इसलिए पहला चेक जो क्लाउडफ्लेयर चलाता है, एक असली क्रोम की तरह पढ़ता है।- निकासी IP
proxyCountryसे मेल खाता है - एक आवासीय क्षेत्र डाटासेंटर IP की तुलना में अधिक विश्वसनीय रूप से स्पष्ट करता है। - एक पास के बाद
cf_clearanceमौजूद है - अनुवर्ती अनुरोधों में अनुदान को ले जाने के लिए उसी सत्र का पुन: उपयोग करें। - जिद्दी पृष्ठों के लिए सत्र को गर्म करें - उसी सत्र में सुरक्षित पृष्ठ से पहले साइट के होमपेज को पहले लोड करें, ताकि व्यवहारिक सतह एक सामान्य यात्रा की तरह दिखे।
निष्कर्ष: क्लाउडफ्लेयर को साफ करें, अपने Node.js को बनाए रखें
Cloudflare को Node.js में साफ करना एक चुनौती को डिकोड करने के बारे में नहीं है - यह एक ब्राउज़र प्रस्तुत करने के बारे में है जिसे Cloudflare विश्वास करता है। Scrapeless Scraping Browser तीन चीजों को संभालता है जिनमें यह स्कोर करता है (फिंगरप्रिंट, व्यवहार, निकासी IP) सर्वर-साइड, इसलिए आपका Puppeteer कोड केवल इसका कनेक्शन URL बदलता है। proxyCountry को एक आवासीय क्षेत्र पर पिन करें, चुनौती के बाद की सामग्री का इंतजार करें, और पास की पुष्टि करने के लिए cf_clearance को पढ़ें। इसके बजाय Python से उसी क्लाउड ब्राउज़र को चलाने के लिए Scrapling उत्पादन-स्क्रैपर गाइड को देखें, और Scrapeless मूल्य निर्धारण पृष्ठ पर योजनाएं तुलना करें।
क्या आप अपने Cloudflare-Clearing पाइपलाइन को बनाने के लिए तैयार हैं?
हमारे समुदाय में शामिल हों, एक मुफ्त योजना प्राप्त करें और Cloudflare-संरक्षित साइटों को स्क्रैप करने वाले डेवलपर्स से जुड़ें: Discord · Telegram।
app.scrapeless.com पर निःशुल्क Scraping Browser रनटाइम के लिए साइन अप करें और Puppeteer को उस क्लाउड ब्राउज़र पर इंगित करें जो रेंडर के दौरान Cloudflare को साफ करता है।
सामान्य प्रश्न
प्रश्न: क्या मुझे एक अलग CAPTCHA-समाधान सेवा की आवश्यकता है?
पासिंग ब्राउज़र पर नहीं। Cloudflare मुख्य रूप से फिंगरप्रिंट, व्यवहार, और IP को पृष्ठभूमि में स्कोर करता है और cf_clearance कुकी जारी करता है। क्लाउड ब्राउज़र इस स्कोरिंग को सामान्य रेंडर के दौरान पास करने के लिए बनाया गया है, इसलिए कोई अलग पहेली चरण स्थापित करने की आवश्यकता नहीं है।
प्रश्न: puppeteer या puppeteer-core?
puppeteer-core का उपयोग करें। यह बंडल किए गए Chromium डाउनलोड को छोड़ता है क्योंकि आप क्लाउड ब्राउज़र से कनेक्ट करते हैं बजाय कि स्थानीय ब्राउज़र को लॉन्च करने के।
प्रश्न: क्या मुझे एक प्रॉक्सी की आवश्यकता है?
नहीं। आवासीय निकासी निर्मित है - proxyCountry को एक क्षेत्र या ANY पर सेट करें। Cloudflare निकासी IP को स्कोर करता है, इसलिए एक आवासीय क्षेत्र डाटा सेंटर पते की तुलना में अधिक विश्वसनीय तरीके से साफ करता है।
प्रश्न: कुछ पृष्ठों पर चुनौती अभी भी दिखाई देती है - क्या मदद करता है?
proxyCountry को एक आवासीय क्षेत्र पर पिन करें और सेशन को गर्म करने के लिए पहले उसी सेशन में सुरक्षित पृष्ठ से पहले साइट के होमपेज को लोड करें, ताकि व्यवहारिक सतह एक सामान्य दौरे की तरह पढ़े।
प्रश्न: क्या Cloudflare को साफ करना कानूनी है?
सार्वजनिक रूप से उपलब्ध डेटा तक पहुंच आम तौर पर अनुमति है, लेकिन नियम क्षेत्राधिकार और साइट के अनुसार भिन्न होते हैं। लक्ष्य की सेवा की शर्तों की समीक्षा करें, रोबोट निर्देशों का सम्मान करें, और किसी भी संवेदनशील चीज के लिए सलाह लें।
स्क्रैपलेस में, हम केवल सार्वजनिक रूप से उपलब्ध डेटा का उपयोग करते हैं, जबकि लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से अनुपालन करते हैं। इस ब्लॉग में सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई अवैध या उल्लंघन करने वाली गतिविधियों को शामिल नहीं किया गया है। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए सभी देयता को कोई गारंटी नहीं देते हैं और सभी देयता का खुलासा करते हैं। किसी भी स्क्रैपिंग गतिविधियों में संलग्न होने से पहले, अपने कानूनी सलाहकार से परामर्श करें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।



