प्रॉक्सी का उपयोग कैसे करें प्लेयराइट के साथ: आवश्यक मार्गदर्शिका
Scraping and Proxy Management Expert
TL;DR:
- प्लेलाइट एक कॉन्फ़िगरेशन विकल्प से प्रॉक्सी चलाता है।
proxyपैरामीटर सर्वर, उपयोगकर्ता नाम और पासवर्ड लेता है, और यही संरचना स्थानीय ब्राउज़र लॉन्च करने या एक दूरस्थ कनेक्ट करने पर काम करती है। - एक आवासीय निकासी वह होती है जो हेडलेस ट्रैफ़िक को मानव के रूप में पढ़ने योग्य बनाती है। डेटा केंद्र IP रेंज और डिफ़ॉल्ट स्वचालन फ़िंगरप्रिंट पहले दो संकेत हैं जिनकी सार्वजनिक साइटें जाँच करती हैं; वास्तविक आवासीय पते के माध्यम से रूटिंग पहले को हटा देती है।
- स्क्रैपलेस स्क्रैपिंग ब्राउज़र क्रोम देव टूल्स प्रोटोकॉल बोलता है। प्लेलाइट इसे
chromium.connectOverCDP(endpoint)के माध्यम से संलग्न करता है, इसलिए आवासीय प्रॉक्सियों और एंटी-डिटेक्शन रन क्लाउड-साइड होते हैं जबकि आपका स्क्रिप्ट साधारण प्लेलाइट रहता है। proxyCountryनिकासी क्षेत्र को पिन करता है;sessionNameऔरsessionTTLएक IP को नेविगेशन के दौरान बनाए रखते हैं। भू-लक्षित और स्टिकी सत्र कनेक्शन स्ट्रिंग पर क्वेरी पैरामीटर हैं, न कि अतिरिक्त अनुप्रयोग कोड।- समानांतर रन स्वतंत्र सत्रों के माध्यम से पैमाने पर होते हैं। एक बार में कई कनेक्शन खोलें और प्रत्येक को अपना स्वयं का आवासीय IP मिलता है, बिना किसी समवर्ती-सीट की छत के।
- शुरू करने के लिए स्वतंत्र। नए स्क्रैपलेस खातों में मुफ्त स्क्रैपिंग ब्राउज़र रनटाइम शामिल है — app.scrapeless.com पर साइन अप करें।
परिचय: प्लेलाइट प्रॉक्सियाँ और जहाँ कच्ची कॉन्फ़िगरेशन रुकती है
प्लेलाइट क्रोमियम, फायरफॉक्स, और वेबकिट को एकल API से संचालित करता है, और इसकी स्वचालित-प्रतीक्षा ने नेविगेशनों को पुराने पीढ़ी के स्वचालन उपकरणों की तुलना में कम नाजुक बना दिया है। फिर भी दो बातें एक प्लेलाइट स्क्रिप्ट को ब्लॉक कर देती हैं। ब्राउज़र एक स्वचालन फ़िंगरप्रिंट जो डिटेक्शन स्क्रिप्ट पढ़ते हैं के साथ आता है, और यह उस IP से कनेक्ट करता है जो होस्ट मशीन के पास है — आमतौर पर एक क्लाउड या डेटा सेंटर पता जो सार्वजनिक साइटें दर-सीमा या भू-सीमाबद्ध करती हैं। एक आवासीय प्रॉक्सी उस समस्या के नेटवर्क आधे का उत्तर देती है; एक एंटी-डिटेक्शन ब्राउज़र फिंगरप्रिंट के आधे का उत्तर देता है।
यह गाइड प्लेलाइट के अपने प्रॉक्सी समर्थन से शुरू होती है, क्योंकि यही वह विकल्प है जिसमें हर प्रॉक्सी प्लग होती है। यह तब दिखाती है कि कहाँ कच्ची प्रॉक्सी कॉन्फ़िगरेशन रुकती है, और कैसे कठिन मामलों को एक क्लाउड ब्राउज़र के पास भेजा जाए जिसे प्लेलाइट पहले से ही क्रोमियम के लिए उपयोग किए गए समान प्रोटोकॉल से कनेक्ट करता है।
पूर्वापेक्षाएँ
- Node.js 18 या नई संस्करण
- एक स्क्रैपलेस खाता और API की — app.scrapeless.com पर साइन अप करें
- प्लेलाइट स्थापित (
npm install playwright) - npm और Node.js पर्यावरण चर की मूल समझ
इंस्टॉल करें
1. अपने प्रोजेक्ट में प्लेलाइट जोड़ें
यदि आपके पास अभी तक प्लेलाइट नहीं है, तो इसे स्थापित करें:
bash
npm install playwright
यह सभी तीन ब्राउज़र इंजनों के लिए प्लेलाइट लाइब्रेरी को खींचता है।
2. अपना स्क्रैपलेस API की सेट करें
की को एक पर्यावरण चर के रूप में स्टोर करें ताकि यह कभी भी स्रोत नियंत्रण में न पहुंचे:
bash
export SCRAPELESS_API_KEY="your_api_key_here"
3. कोई रैपर SDK की आवश्यकता नहीं है
प्लेलाइट क्रोम देव टूल्स प्रोटोकॉल के माध्यम से स्क्रैपलेस स्क्रैपिंग ब्राउज़र से कनेक्ट करता है, इसलिए प्लेलाइट के अलावा कोई अतिरिक्त पैकेज स्थापित करने की आवश्यकता नहीं है।
प्लेलाइट के अंतर्निहित प्रॉक्सी को कॉन्फ़िगर करें
प्लेलाइट launch() और newContext() में प्रॉक्सी सेटिंग्स स्वीकार करता है। server को आपकी प्रॉक्सी गेटवे की ओर इंगित करें और क्रेडेंशियल पास करें:
javascript
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({
proxy: {
server: 'http://your-proxy-host:8080', // आपकी प्रॉक्सी गेटवे
username: 'your-proxy-user',
password: 'your-proxy-pass',
},
});
const context = await browser.newContext();
const page = await context.newPage();
await page.goto('https://example.com');
console.log(await page.title());
await browser.close();
})();
यह पूरी लाइब्रेरी-स्तरीय सतह है, और यह क्रोमियम, फायरफॉक्स और वेबकिट के लिए समान कार्य करती है। दो बातें जो यह नहीं करती: यह मानती है कि आपके पास पहले से ही आवासीय पतों का एक पूल है जिसके लिए आप server को इंगित करते हैं, और यह ब्राउज़र के स्वचालन फ़िंगरप्रिंट को बिना छुए छोड़ देती है। कच्ची प्रॉक्सी कॉन्फ़िगरेशन आपके ट्रैफ़िक को एक नए IP पर स्थानांतरित करती है; यह इस बात में बदलाव नहीं करती कि पृष्ठ ग्राहक को कैसे पढ़ता है।
अपनी API की मुफ्त योजना पर प्राप्त करें: app.scrapeless.com
जहाँ कच्ची प्रॉक्सी कॉन्फ़िगरेशन रुकती है — फ़िंगरप्रिंट और IP स्रोतिंग
Here is the translation of the provided text in Hindi:
दो खाली स्थान launch({ proxy }) और एक स्वचालन चलाने के बीच होते हैं जो जनरल साइटों को स्वच्छ रूप से सेवा देती हैं: एक वास्तविक आवासीय पूल का स्रोत बनाना और घुमाना, और जो फिंगरप्रिंट ब्राउज़र प्रस्तुत करता है जब वह पहुंचता है। स्क्रेपलेस स्क्रेपिंग ब्राउज़र दोनों को बंद कर देता है। यह वेब क्रॉलरों और एआई एजेंटों के लिए बनाया गया एक एंटी-डिटेक्शन क्लाउड ब्राउज़र है, और क्योंकि यह क्रोम देव उपकरण प्रोटोकॉल से बात करता है, इसलिए प्ले राइट इसे एक पंक्ति में संलग्न करता है। विशेष रूप से प्ले राइट के लिए, यह लाता है:
- 195+ देशों में आवासीय निकासी नोड , जिसमें स्वचालन फिंगरप्रिंट क्लाउड-सेट किया जाता है।
- क्लाउड-साइड जावास्क्रिप्ट रेंडरिंग — दूरस्थ ब्राउज़र पृष्ठ को निष्पादित करता है, इसलिए कार्य आपके मशीन से बाहर निकलता है।
- जियो-टार्गेटिंग और चिपचिपे सत्र के रूप में कनेक्शन पैरामीटर —
proxyCountry,sessionName, औरsessionTTLअंत बिंदु स्ट्रिंग पर सवार होते हैं। - कोई समवर्ती-सीट सीमा नहीं — उपयोग के अनुसार भुगतान करें और चलाने की आवश्यकता के अनुसार जितने चाहें सत्र खोलें।
कनेक्शन स्ट्रिंग आपके कुंजी को token पैरामीटर के रूप में ले जाती है; docs.scrapeless.com में हर विकल्प की सूची है। ऐप.scrapeless.com पर मुफ्त योजना में अपना एपीआई कुंजी प्राप्त करें।
सीडीपी के माध्यम से प्ले राइट को कनेक्ट करें
वेबसॉक्ट एंडपॉइंट बनाएं, फिर chromium.connectOverCDP() के साथ कनेक्ट करें। वहाँ से यह साधारण प्ले राइट है - प्रॉक्सी और फिंगरप्रिंटिंग पहले से ही दूरस्थ ब्राउज़र पर लागू होते हैं:
javascript
const { chromium } = require('playwright');
const token = process.env.SCRAPELESS_API_KEY;
const params = new URLSearchParams({
token,
proxyCountry: 'US', // आवासीय निकासी क्षेत्र पिन करें
sessionTTL: '300', // 300 सेकंड के लिए सत्र को जीवित रखें
});
const wsEndpoint = `wss://browser.scrapeless.com/api/v2/browser?${params.toString()}`;
(async () => {
const browser = await chromium.connectOverCDP(wsEndpoint);
const context = await browser.newContext();
const page = await context.newPage();
await page.goto('https://example.com', { waitUntil: 'domcontentloaded' });
console.log('शीर्षक:', await page.title());
// पुष्टि करें कि निकासी एक आवासीय आईपी है, न कि मेज़बान मशीन की
const ipPage = await context.newPage();
await ipPage.goto('https://api.ipify.org?format=json', { waitUntil: 'domcontentloaded' });
console.log('निकासी:', await ipPage.evaluate(() => document.body.innerText));
await browser.close();
})();
एक देश पिन करें और एक आईपी पुनः उपयोग करें
जियो-टार्गेटिंग proxyCountry पैरामीटर है। चिपचिपापन sessionName और एक जीवित sessionTTL है: विंडो के भीतर उसी नाम का पुनः उपयोग करें और प्रत्येक नेविगेशन उसी आवासीय आईपी से छोड़ता है, जो एक पहचान पर लॉगइन प्रवाह बनाए रखता है।
javascript
const { chromium } = require('playwright');
const token = process.env.SCRAPELESS_API_KEY;
function endpoint({ country, session }) {
const params = new URLSearchParams({
token,
proxyCountry: country,
sessionName: session, // वही नाम + जीवित TTL = वही निकासी आईपी
sessionTTL: '300',
});
return `wss://browser.scrapeless.com/api/v2/browser?${params.toString()}`;
}
(async () => {
const browser = await chromium.connectOverCDP(endpoint({ country: 'US', session: 'demo-session' }));
const context = await browser.newContext();
const page = await context.newPage();
await page.goto('https://api.ipify.org?format=json', { waitUntil: 'domcontentloaded' });
console.log('पहला :', await page.evaluate(() => document.body.innerText));
await page.goto('https://api.ipify.org?format=json', { waitUntil: 'domcontentloaded' });
console.log('दूसरा:', await page.evaluate(() => document.body.innerText));
await browser.close();
})();
समानांतर में सत्र चलाएं
प्रत्येक कनेक्शन स्वतंत्र है, इसलिए एक कार्यकर्ता पूल Promise.all विभिन्न एंडपॉइंट्स पर विशिष्ट सत्र नामों के साथ है। शिष्ट रहने के लिए प्रति होस्ट तीन समवर्तीता रखें:
javascript
const { chromium } = require('playwright');
const token = process.env.SCRAPELESS_API_KEY;
function endpoint(session) {
const params = new URLSearchParams({ token, proxyCountry: 'US', sessionName: session, sessionTTL: '180' });
return `wss://browser.scrapeless.com/api/v2/browser?${params.toString()}`;
}
async function fetchIp(session) {
const browser = await chromium.connectOverCDP(endpoint(session));
try {
const page = await browser.newContext().then(c => c.newPage());
await page.goto('https://api.ipify.org?format=json', { waitUntil: 'domcontentloaded' });
return { session, ip: JSON.parse(await page.evaluate(() => document.body.innerText)).ip };
} finally {
await browser.close();
}
}
(async () => {
const workers = ['worker-1', 'worker-2', 'worker-3'];
const results = await Promise.all(workers.map(fetchIp));
console.log(results);
})();
---
## आपको क्या मिलेगा
हर सत्र एक विशिष्ट आवासीय निकासी की रिपोर्ट करता है, और एक स्थिर सत्र एक ही निकासी को दो बार रिपोर्ट करता है। ऊपर दिए गए समानांतर चलने पर प्रति श्रमिक एक रिकॉर्ड लौटता है:
```javascript
// उदाहरणात्मक नमूना — स्कीमा सटीक है; IP मान उदाहरणात्मक है और प्रति सत्र भिन्न होता है।
[
{ "session": "worker-1", "ip": "72.188.194.89" },
{ "session": "worker-2", "ip": "172.56.218.152" },
{ "session": "worker-3", "ip": "73.135.52.138" }
]
स्कीमा नोट्स:
proxyCountry: 'US'प्रत्येक निकासी को एक अमेरिका के आवासीय पते से कनेक्ट करता है; कोड को किसी अन्य क्षेत्र को लक्षित करने के लिए बदलें।- एक ही
sessionNameऔर एक सक्रियsessionTTLके अंतर्गत, IP नेविगेशन में स्थिर रहता है; एक नया नाम एक नया पता खींचता है। - चयनकर्ता को लक्षित साइट के वर्तमान रूप-रेखा से मेल खाना चाहिए — जब DOM में बदलाव हो तो उन्हें कसें।
- दूरस्थ ब्राउज़र डिफ़ॉल्ट रूप से जावास्क्रिप्ट को प्रस्तुत करता है, इसलिए क्लाइंट-साइड सामग्री DOM को पढ़ने से पहले मौजूद होती है।
समस्या निवारण
लंबे रन के दौरान कनेक्शन ड्रॉप हो रहा है
कारण: sessionTTL कार्यप्रवाह समाप्त होने से पहले समाप्त हो गया।
फिक्स: कार्यप्रवाह को कवर करने के लिए sessionTTL को पहले से सेट करें - यह सेकेंड में सत्र का जीवनकाल है, इसलिए इसे सबसे लंबे नेविगेशन शृंखला के अनुसार आकार दें जिसे आप अपेक्षित करते हैं।
साइट अभी भी "एक्सेस अस्वीकृत" पृष्ठ दिखा रही है
कारण: एक साफ आवासीय IP एकमात्र संकेतक नहीं है; एक ठंडी सत्र जो सीधे गहरे URL पर कूदता है वह भी स्वचालित दिखता है।
फिक्स: सत्र को गर्म करने के लिए पहले उसी संदर्भ में साइट के होमपेज को लोड करें, proxyCountry को एक क्षेत्र पर पिन करें जो दर्शक से मेल खाता है, और संदर्भ को यथार्थवादी विकल्प दें (userAgent, Accept-Language)।
निष्कर्ष खाली फ़ील्ड लौटाता है
कारण: चयनकर्ता अब प्रस्तुत रूप-रेखा से मेल नहीं खा रहे हैं।
फिक्स: पृष्ठ का पुन: निरीक्षण करें और चयनकर्ताओं को कसें; वैकल्पिक फ़ील्ड की सुरक्षा करें ताकि एक अनुपस्थित तत्व नल लौटाए बजाय इसके कि वह थ्रौ फेंके।
निष्कर्ष: एक प्रॉक्सी परत जो आपके एप्लिकेशन कोड से बाहर रहती है
एक प्रॉक्सी वाला Playwright रन कुछ चालों में सरल हो जाता है: एंडपॉइंट बनाएँ, CDP के माध्यम से कनेक्ट करें, देश को पिन करें, और वही Playwright लिखें जो आप पहले से जानते हैं। नेटिव launch({ proxy }) उस मामले को कवर करता है जब आपके पास पूल हो; स्क्रैपिंग ब्राउज़र उन मामलों को कवर करता है जहां आपको असली आवासीय निकासी और एक फिंगरप्रिंट चाहिए जो थम जाए। निकासी को proxyCountry के साथ पिन करें, एक पहचान को sessionName और एक सक्रिय sessionTTL के साथ बनाए रखें, प्रति होस्ट तीन की समानांतरता बनाए रखें, और अनुपस्थित फ़ील्ड को नल के रूप में व्यवहार करें। रोटेशन रणनीतियों पर व्यापक दृष्टिकोण के लिए, best-rotating-proxies-2026 देखें।
क्या आप Playwright और प्रॉक्सियों के साथ स्केल पर स्वचालित करने के लिए तैयार हैं?
हमारे समुदाय में शामिल हों ताकि आप एक मुफ्त योजना का दावा कर सकें और Playwright स्वचालन बनाने वाले डेवलपर्स से जुड़ सकें: Discord · Telegram.
app.scrapeless.com पर मुफ्त स्क्रैपिंग ब्राउज़र रनटाइम के लिए साइन अप करें, मूल्यांकन करें, और ऊपर दिए गए पैटर्न्स को उन क्षेत्रों और साइटों के लिए अनुकूलित करें जिनकी आपकी स्वचालन को आवश्यकता है।
सामान्य प्रश्न
प्रश्न: क्या Playwright के साथ स्क्रैपिंग कानूनी है?
सार्वजनिक रूप से दृश्य डेटा को स्क्रैप करना व्यापक रूप से अनुमत है, लेकिन नियम क्षेत्राधिकार और साइट की सेवा की शर्तों के अनुसार भिन्न होते हैं। लक्ष्यों की सेवा की शर्तों की समीक्षा करें, एक लॉगिन के पीछे के डेटा से बचें जिसका आप उपयोग करने के लिए अधिकृत नहीं हैं, और किसी भी संवेदनशील मामले के लिए सलाह लें।
प्रश्न: क्या मुझे प्रॉक्सी की आवश्यकता है?
आपको तब आवश्यकता है जब लक्षित डेटा केंद्र IP को ब्लॉक करता है या भू-प्रतिबंध लागू करता है, जो बड़े पैमाने पर अधिकांश सार्वजनिक साइटों को कवर करता है। एक आवासीय निकासी अनुरोध को सामान्य उपयोगकर्ता ट्रैफ़िक के रूप में भेजने की इजाजत देती है; इसके बिना, एक क्लाउड IP को ब्लॉक करना आसान है।
प्रश्न: मुझे "एक्सेस अस्वीकृत" पृष्ठ मिलता है - मुझे साफ़ रेंडर कैसे मिलता है?
सलंग्न संदर्भ में पहले साइट के होमपेज को लोड करें ताकि सत्र को गर्म किया जा सके, proxyCountry को एक क्षेत्र पर पिन करें जो दर्शकों के अनुरूप हो, और यथार्थवादी संदर्भ विकल्प जैसे userAgent और Accept-Language सेट करें। ठंडी संदर्भ से गहरे URL पर पहुंचना आम ट्रिगर होता है।
प्रश्न: क्या मैं एक साथ कई Playwright सत्र चला सकता हूँ?
हाँ। प्रत्येक CDP कनेक्शन स्वतंत्र होता है और अपना आवासीय IP खींचता है, इसलिए एक कार्यकर्ता पूल Promise.all होता है कई एंडपॉइंट्स के साथ जिनके अद्वितीय sessionName मान होते हैं। प्रति होस्ट तीन की समानांतरता बनाए रखें ताकि आप विनम्र सीमाओं के भीतर बने रहें।
प्रश्न: मैं निकासी देश को कैसे स्विच करूँ?
proxyCountry मान को बदलें और नया कनेक्शन खोलें। देश उस समय निर्धारित होता है जब सत्र बनाया जाता है, इसलिए एक अलग क्षेत्र का मतलब एक नया एंडपॉइंट स्ट्रिंग है, न कि सत्र के बीच में परिवर्तन।
प्रश्न: क्या यह जावास्क्रिप्ट-गहन साइटों पर काम करता है?
हाँ। रिमोट ब्राउज़र पृष्ठ को पढ़ने से पहले निष्पादित करता है, इसलिए क्लाइंट-जनित सामग्री page.goto() के हल होने के समय तक DOM में होती है। उन साइटों पर waitUntil: 'domcontentloaded' का उपयोग करें जिनका नेटवर्क कभी Idle नहीं होता।
प्रश्न: जब साइट का मार्कअप बदलता है तो क्या होता है?
एक विशिष्ट वर्ग या संरचना से जुड़े चयनकर्ता एक साइट के पुनः डिज़ाइन करने पर टूट जाते हैं। सबसे स्थिर संकेत पर एंकर निकासी — एक डेटा विशेषता या एक स्थायी URL पैटर्न पर हैश की गई CSS क्लास — और जब फ़ील्ड वापस खाली आने लगते हैं तो चयनकर्ताओं को फिर से जांचें।
स्क्रैपलेस में, हम केवल सार्वजनिक रूप से उपलब्ध डेटा का उपयोग करते हैं, जबकि लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से अनुपालन करते हैं। इस ब्लॉग में सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई अवैध या उल्लंघन करने वाली गतिविधियों को शामिल नहीं किया गया है। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए सभी देयता को कोई गारंटी नहीं देते हैं और सभी देयता का खुलासा करते हैं। किसी भी स्क्रैपिंग गतिविधियों में संलग्न होने से पहले, अपने कानूनी सलाहकार से परामर्श करें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।



