प Puppeteer Undetected Fingerprint Browser With Scrapeless
Scraping and Proxy Management Expert
TL;DR:
- Puppeteer पहले से ही Chrome DevTools Protocol बोलता है, इसलिए
puppeteer.connect()इसे एक URL के साथ Scrapeless की ओर इंगित करता है। अपने स्थानीयpuppeteer.launch()को बादल ब्राउज़र से कनेक्शन के लिए स्वैप करें और हर स्क्रिप्ट एक साफ पहचान पर चलती है। - एक स्थानीय Puppeteer ब्राउज़र तीन अक्षों पर स्वचालन लीक करता है:
navigator.webdriverध्वज, एक हेडलेस-डिफ़ॉल्ट फिंगरप्रिंट, और आपका अपना निकासी IP। एंटी-बॉट सिस्टम तीनों को एक साथ स्कोर करते हैं। - Scrapeless स्क्रैपिंग ब्राउज़र सभी तीनों का उत्तर सर्वर-साइड करता है - असली स्व-विकसित क्रोमियम, बिना
webdriverबताने वाले के साथ प्रति-सत्र एक सुसंगत फिंगरप्रिंट, और 195+ देशों में निवासी निकासी। - आपका Puppeteer कोड अपरिवर्तित है।
page.goto,page.evaluate, चयनक और प्रतीक्षा बिल्कुल वैसी ही कार्य करती हैं जैसे स्थानीय रूप से; केवल कनेक्शन लाइन हिलती है। - सत्यापित लाइव: एक
puppeteer.connect()सत्र नेnavigator.webdriverकोfalseके रूप में पढ़ा, एक अमेरिकी निवास निकासी IP की सूचना दी, और लक्षित पृष्ठ का असली शीर्षक लौटाया। - शुरू करने के लिए मुफ्त। नए Scrapeless खाते मुफ्त स्क्रैपिंग ब्राउज़र रनटाइम शामिल करते हैं - app.scrapeless.com पर साइन अप करें।
परिचय: Puppeteer को क्लीन पढ़ने वाले ब्राउज़र से कनेक्ट करें
Puppeteer DevTools प्रोटोकॉल के माध्यम से असली क्रोमियम को संचालित करता है। उस क्रोमियम को अपने स्वयंके मशीन पर लॉन्च करें और प्रत्येक स्क्रिप्ट उन संकेतों को विरासत में प्राप्त करती है जो स्वचालन को स्पष्ट बनाते हैं: यह the navigator.webdriver property के माध्यम से स्वयं को घोषित करता है, हेडलेस-डिफ़ॉल्ट फ़ॉन्ट और कैनवास व्यवहार भेजता है, और एक IP से बाहर निकलता है जिसे प्रतिष्ठा सेवाएँ पहले से पहचानती हैं।
आप इनमें से प्रत्येक को एक स्टेल्थ प्लगइन के साथ पैच कर सकते हैं और फिर जैसे-जैसे क्रोमियम और डिटेक्टर आगे बढ़ते हैं, पैचिंग जारी रख सकते हैं। एक छोटा रास्ता है। Puppeteer किसी भी ब्राउज़र से कनेक्ट करता है जो puppeteer.connect() के माध्यम से एक DevTools अंत बिंदु प्रकट करता है, और Scrapeless स्क्रैपिंग ब्राउज़र है एक Chrome DevTools Protocol अंत बिंदु जो एक वेब सोकेट URL के माध्यम से पहुँचा जा सकता है। Puppeteer को इसकी ओर इंगित करें और फिंगरप्रिंट, व्यवहारिक सतह, और निकासी IP सर्वर-साइड पर चले जाते हैं — आपकी स्क्रिप्ट वहीं रहती है।
इससे आप क्या कर सकते हैं
- एंटी-बॉट-सुरक्षित साइटों के खिलाफ स्क्रिप्ट चलाएँ — बादल ब्राउज़र रेंडर के दौरान चुनौतियों को साफ करता है, इसलिए
page.gotoसामग्री तक पहुँचता है। - सत्र को स्थानीय बनाएं —
proxyCountryको पिन करें ताकि एक पृष्ठ उस बाजार में एक आगंतुक की तरह हल हो। - एक सुसंगत फिंगरप्रिंट भेजें — एक
fingerprintवस्तु पास करें ताकि उपयोगकर्ता एजेंट, मंच, स्क्रीन और समय क्षेत्र सुसंगत रहें। - लॉगिन स्थिति को बनाए रखें — एक
profileIdले जाएँ ताकि कुकीज़ और स्थानीय भंडारण रन के बीच जीवित रहें। - अपनी मशीन से परे स्केल करें — सत्र बादल में चलते हैं, आपके लैपटॉप पर नहीं।
- स्वचालन को समान रखें —
page.evaluate, चयनक, क्लिक और प्रतीक्षा अपरिवर्तित हैं।
क्यों Scrapeless स्क्रैपिंग ब्राउज़र
Scrapeless स्क्रैपिंग ब्राउज़र एक अनुकूलन योग्य, एंटी-डिटेक्शन बादल ब्राउज़र है जिसे वेब क्रॉलर और AI एजेंटों के लिए डिज़ाइन किया गया है। विशेष रूप से Puppeteer के लिए, यह लाता है:
- असली स्व-विकसित क्रोमियम जो पृष्ठ JavaScript को बिल्कुल Chrome की तरह चलाता है, ताकि एसपीए और चुनौतियाँ हल हों।
- एक सुसंगत प्रति-सत्र फिंगरप्रिंट — कोई
navigator.webdriverबताने वाला नहीं, कोई हेडलेस डिफ़ॉल्ट लीक के माध्यम से नहीं। - 195+ देशों में निवास निकासी, प्रति सत्र एक
proxyCountryमान के साथ चयनित। - सत्र की स्थिरता
profileIdके माध्यम से, ताकि एक प्रामाणिक प्रवाह अपनी स्थिति बनाए रख सके। - एक कनेक्शन सतह — हर विकल्प एक ही वेब सोकेट अंत बिंदु पर एक क्वेरी पैरामीटर है।
app.scrapeless.com पर मुफ़्त योजना पर अपना एपीआई कुंजी प्राप्त करें।
पूर्वापेक्षाएँ
- Node.js 18 या नया
puppeteer-coreस्थापित किया गया (स्थानीय क्रोमियम की आवश्यकता नहीं - आप एक दूरस्थ ब्राउज़र से कनेक्ट करते हैं)- एक Scrapeless खाता और एपीआई कुंजी — app.scrapeless.com पर साइन अप करें
पूर्ण कनेक्शन विवरण Scraping Browser documentation में उपलब्ध हैं।
इंस्टॉल करें
puppeteer-core का उपयोग करें - इसमें एक स्थानीय क्रोमियम डाउनलोड नहीं होता है, क्योंकि ब्राउज़र क्लाउड में रहता है।
bash
npm install puppeteer-core
export SCRAPELESS_API_KEY=your_api_token_here # मुफ्त कुंजी https://app.scrapeless.com पर
कनेक्शन को कॉन्फ़िगर करें
अंत बिंदु wss://browser.scrapeless.com/api/v2/browser है, और प्रत्येक विकल्प एक क्वेरी पैरामीटर है। एक निवासी क्षेत्र के लिए proxyCountry को पिन करें।
javascript
import { URLSearchParams } from "node:url";
function scrapelessEndpoint(extra = {}) {
javascript
const params = new URLSearchParams({
token: process.env.SCRAPELESS_API_KEY,
sessionTTL: "180", // सेकंड
proxyCountry: "US",
...extra,
});
return `wss://browser.scrapeless.com/api/v2/browser?${params}`;
}
कनेक्ट करें और चलाएं
puppeteer.launch() को puppeteer.connect() के साथ बदलें और इसे एंडपॉइंट दें। इसके बाद सब कुछ मानक Puppeteer है।
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 browser = await puppeteer.connect({ browserWSEndpoint: endpoint });
const page = await browser.newPage();
await page.goto("https://www.scrapeless.com/en", { waitUntil: "domcontentloaded", timeout: 60000 });
console.log("title:", await page.title());
console.log("navigator.webdriver:", await page.evaluate(() => navigator.webdriver));
await page.goto("https://httpbin.io/ip", { waitUntil: "domcontentloaded", timeout: 60000 });
console.log("exit ip:", JSON.parse(await page.evaluate(() => document.body.innerText)).origin);
await browser.close();
इस स्क्रिप्ट का लाइव चलाना पृष्ठ शीर्षक खुदाई के बिना वेब स्क्रैपिंग टूलकिट - स्क्रैपलेस, navigator.webdriver: false, और एक अमेरिकी आवासीय अंत IP निकाला - वही Puppeteer API जिसे आप पहले से उपयोग कर रहे हैं, जो क्लाउड ब्राउज़र के माध्यम से स्रोतित है।
अपनी API कुंजी मुफ़्त योजना पर प्राप्त करें: app.scrapeless.com
एक सुसंगत फिंगरप्रिंट भेजें
एक fingerprint ऑब्जेक्ट ब्राउज़र की विज्ञापित पहचान को सुसंगत रखता है - उपयोगकर्ता एजेंट, प्लेटफ़ॉर्म, स्क्रीन, और समय क्षेत्र सभी सहमत हैं। इसे JSON-कोडित करें, URL-कोडित करें, और इसे एक और पैरामीटर के रूप में पास करें। W3C WebDriver विनिर्देश आवश्यकताएँ प्रदान करती हैं कि स्वचालितता webdriver फ्लैग को उजागर करे; क्लाउड ब्राउज़र इसे नहीं ले जाता, इसलिए जो फिंगरप्रिंट आप भेजते हैं उससे कुछ भी असंगत नहीं होता है।
javascript
const fingerprint = {
userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
platform: "Windows",
screen: { width: 1920, height: 1080 },
localization: { languages: ["en-US", "en"], timezone: "America/New_York" },
};
const endpoint = scrapelessEndpoint({ fingerprint: encodeURIComponent(JSON.stringify(fingerprint)) });
जहां स्थानीय Puppeteer रुकता है
अपने स्वयं के Chromium पर Puppeteer चलाना खुले, असुरक्षित पृष्ठों के लिए ठीक है। समस्या तब शुरू होती है जब लक्ष्य ब्राउज़र स्कोर करता है: एक चुनौती इंटरस्टिशियल जो डाटासेंटर IP पर अटक जाता है, एक पृष्ठ जो हेडलेस डिफ़ॉल्ट्स का फिंगरप्रिंट बनाता है, या एक लॉगिन दीवार जो यात्राओं के बीच स्थिर पहचान चाहती है। प्रत्येक एक फिंगरप्रिंट, व्यवहार, या IP समस्या है - बिल्कुल वही तीन जो क्लाउड ब्राउज़र सर्वर-साइड संभालता है। स्क्रैपलेस से कनेक्ट करना उन मामलों को प्रबंधित सत्र को सौंपता है जबकि आपकी page कॉल समान रहती हैं।
आपको क्या वापस मिलता है
सत्र किसी भी Puppeteer सत्र की तरह व्यवहार करता है - page.goto, page.evaluate, page.$$eval, और कुकीज़ सब काम करते हैं। क्लाउड ब्राउज़र पर इसे चलाने से कुछ ईमानदार अवलोकन:
navigator.webdriverfalseहै, इसलिए पहले जांच जो एक साइट चलाती है वह असली Chrome की तरह पढ़ती है।sessionTTLयहां सेकंड में है — इसे पूर्ण प्रवाह को कवर करने के लिए लंबे समय तक सेट करें; जब यह समाप्त होता है, तो सत्र बंद हो जाता है।- निकासी IP
proxyCountryसे मेल खाता है — भू-गेटेड पृष्ठ स्थानीय आगंतुक के रूप में उन्हें देखता है। - पुरानी सत्र के लिए गर्म करें — सुरक्षित पृष्ठ से पहले साइट के होमपेज को लोड करें, ताकि व्यवहारिक सतह सामान्य यात्रा की तरह पढ़े।
निष्कर्ष: वही Puppeteer, साफ़ ब्राउज़र
Puppeteer यह तय करता है कि क्या करना है; Scrapeless यह तय करता है कि ब्राउज़र साइट के लिए कैसा दिखता है। एकीकरण एक पंक्ति है - क्लाउड ब्राउज़र के खिलाफ puppeteer.connect() - और आपके स्क्रिप्ट का शेष अपरिवर्तित रहता है। proxyCountry को एक आवासीय क्षेत्र में पिन करें, एक सुसंगत fingerprint पास करें, और प्रमाणित प्रवाह के लिए एक profileId फिर से उपयोग करें। यदि Python से उसी क्लाउड ब्राउज़र को चलाने के लिए, Scrapling प्रोडक्शन-स्क्रैपर गाइड देखें, और Scrapeless मूल्य निर्धारण पृष्ठ पर योजनाओं की तुलना करें।
क्या आप अपने Puppeteer स्क्रैपिंग पाइपलाइन का निर्माण करने के लिए तैयार हैं?
हमारे समुदाय में शामिल हों ताकि मुफ़्त योजना का दावा कर सकें और उन Developers से जुड़ सकें जो Puppeteer पाइपलाइनों का निर्माण कर रहे हैं: Discord · Telegram।
साइन अप करें app.scrapeless.com पर मुफ्त स्क्रैपिंग ब्राउज़र रनटाइम के लिए और puppeteer.connect() को क्लाउड ब्राउज़र पर इंगीत करें जिसे आपके लक्ष्य फ़िंगरप्रिंट नहीं कर सकते।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
प्रश्न: क्या मुझे अपने Puppeteer कोड में बदलाव करना होगा?
नहीं। आपको ब्राउज़र प्राप्त करने के तरीके में बदलाव करना होगा — puppeteer.connect({ browserWSEndpoint }) का उपयोग करें बजाय puppeteer.launch() के। उसके बाद हर page कॉल समान है।
प्रश्न: puppeteer या puppeteer-core?
puppeteer-core का उपयोग करें। यह बंडल किए गए Chromium डाउनलोड को छोड़ देता है क्योंकि आप एक स्थानीय ब्राउज़र लॉन्च करने के बजाय क्लाउड ब्राउज़र से कनेक्ट करते हैं।
प्रश्न: क्या मुझे एक प्रॉक्सी की आवश्यकता है?
नहीं। आवासीय निकासी पहले से ही शामिल है — proxyCountry को किसी क्षेत्र या ANY पर सेट करें। इसे वायर करने के लिए कोई अलग प्रॉक्सी नहीं है।
प्रश्न: क्या sessionTTL सेकंड में है या मिलीसेकंड में?
यहां स्क्रैपिंग ब्राउज़र कनेक्शन के लिए यह सेकंड में है — 180 तीन मिनट है। इसे पूरे प्रवाह को कवर करने के लिए सेट करें।
प्रश्न: क्या Puppeteer के साथ वेब स्क्रैपिंग कानूनी है?
सार्वजनिक रूप से उपलब्ध डेटा तक पहुँचने की आम तौर पर अनुमति है, लेकिन नियम क्षेत्राधिकार और साइट के अनुसार भिन्न होते हैं। लक्ष्य की सेवा की शर्तों की समीक्षा करें, रोबोट निर्देशों का सम्मान करें, और किसी भी संवेदनशील मामले के लिए कानूनी सलाह लें।
स्क्रैपलेस में, हम केवल सार्वजनिक रूप से उपलब्ध डेटा का उपयोग करते हैं, जबकि लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से अनुपालन करते हैं। इस ब्लॉग में सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई अवैध या उल्लंघन करने वाली गतिविधियों को शामिल नहीं किया गया है। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए सभी देयता को कोई गारंटी नहीं देते हैं और सभी देयता का खुलासा करते हैं। किसी भी स्क्रैपिंग गतिविधियों में संलग्न होने से पहले, अपने कानूनी सलाहकार से परामर्श करें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।



