प्रमाणीकरण के साथ Puppeteer प्रॉक्सी सेटअप
Puppeteer प्रॉक्सी सर्वर को लॉन्च फ्लैग के रूप में लेता है, लेकिन उपयोगकर्ता नाम और पासवर्ड कहीं और जाते हैं — page.authenticate() के माध्यम से। यहां प्रमाणित s4m प्रॉक्सियों के लिए सही पैटर्न है, जिसमें पूरा Node कोड है।
क्यों केवल झंडा पर्याप्त नहीं है
Chromium — the browser Puppeteer drives — accepts a proxy through the --proxy-server command-line flag. The catch is that Chromium's flag format does not accept credentials inline: you cannot write --proxy-server=http://USER:PASS@host:3128 and expect it to work. When the proxy challenges for authentication, Chromium raises a native auth prompt that a headless browser cannot answer on its own.
Puppeteer's answer is page.authenticate({ username, password }). You pass the bare host and port to the launch flag, then hand the credentials to the page, and Puppeteer responds to the proxy's 407 Proxy Authentication Required challenge for you. With s4m that means launching with --proxy-server=http://proxy.s4m.online:3128 and authenticating with your USER:PASS. The HTTP endpoint (port 3128) is the right one here — Chromium's proxy flag speaks HTTP and SOCKS, but authenticated SOCKS5 with a browser is fiddly, so HTTP is the reliable choice. See the proxy overview and the proxy authentication guide.
प्रमाणित Puppeteer लॉन्च
प्रॉक्सी होस्ट लॉन्च फ्लैग में जाता है; USER:PASS page.authenticate() के माध्यम से जाता है। चलाने से पहले क्रेडेंशियल्स को बदलें।
// npm install puppeteer
const puppeteer = require("puppeteer");
const HOST = "proxy.s4m.online";
const PORT = 3128; // HTTP proxy endpoint
const USER = "USER";
const PASS = "PASS";
(async () => {
const browser = await puppeteer.launch({
headless: "new",
args: [
`--proxy-server=http://${HOST}:${PORT}`,
// credentials are NOT allowed here — see page.authenticate below
"--no-sandbox",
],
});
const page = await browser.newPage();
// This answers the proxy's 407 challenge:
await page.authenticate({ username: USER, password: PASS });
await page.goto("https://api.ipify.org?format=json", {
waitUntil: "networkidle0",
timeout: 30000,
});
console.log("Exit IP:", await page.evaluate(() => document.body.innerText));
await browser.close();
})();वे चीजें जो लोगों को उलझा देती हैं
वे गलतियाँ जो एक खाली पृष्ठ या 407 में बदल जाती हैं।
प्रमाण पृष्ठ पर जाते हैं
कभी भी --proxy-server में USER:PASS न डालें; क्रोमियम इसे नजरअंदाज करता है। हमेशा अपनी पहली नेविगेशन से पहले page.authenticate() को कॉल करें, प्रति पृष्ठ एक बार।
HTTP एंडपॉइंट का उपयोग करें
ब्राउज़र में प्रमाणित SOCKS5 अविश्वसनीय है। --proxy-server को http://proxy.s4m.online:3128 पर सेट करें और page.authenticate को लॉगिन संभालने दें।
जाने से पहले प्रमाणीकरण करें
page.goto() से पहले page.authenticate() कॉल करें, अन्यथा पहला अनुरोध क्रेडेंशियल्स के बिना प्रॉक्सी पर जाता है और 407 लौटाता है।
एक संदर्भ, एक पहचान
प्रत्येक ब्राउज़र संदर्भ अपनी स्वयं की प्रमाणीकरण ले जाता है। कई पहचान के लिए, साझा पृष्ठ को फिर से प्रमाणीकरण करने के बजाय अलग संदर्भ लॉन्च करें।
ब्लॉक्स, फिंगरप्रिंट और ईमानदारी
एक प्रॉक्सी आपके IP को छुपाती है; यह यह नहीं छुपाती कि आप एक ब्राउज़र को स्वचालित कर रहे हैं। आधुनिक एंटी-बॉट सिस्टम भी नेविगेटर प्रॉपर्टीज़, समय, और TLS फिंगरप्रिंट्स को देखते हैं। यदि एक लक्ष्य हेडलेस क्रोमियम को फ्लैग करता है, तो केवल एक प्रॉक्सी इसे ठीक नहीं करेगी — आपको यथार्थवादी व्यूपोर्ट और यूजर-एजेंट सेटिंग्स और मानव-जैसे गति की आवश्यकता हो सकती है, और फिर भी कुछ साइटें स्वचालन के लिए बस बंद हैं।
प्रॉक्सी प्रकार के बारे में ईमानदार रहें: s4m प्रॉक्सियाँ डेटासेंटर हैं, जो परीक्षण, निगरानी और मध्यम रूप से सुरक्षित साइटों के लिए सही हैं, लेकिन भारी सुरक्षा वाले लक्ष्यों द्वारा डेटासेंटर रेंज को ब्लॉक किया जा सकता है। जब आपको लॉगिन या अनुमति सूची के लिए एक स्थिर निकास की आवश्यकता हो, तो एक समर्पित व्यक्तिगत IP जोड़ें। क्या आप प्ले राइट पसंद करते हैं? पैटर्न लगभग समान है — देखें प्ले राइट प्रॉक्सी गाइड। अपने निकास की पुष्टि करें उपकरणों के साथ और फ्री प्रॉक्सी लिस्ट के खिलाफ प्रोटोटाइप करें।
प्रश्न, उत्तरित
मेरी Puppeteer अनुरोध 407 क्यों लौटाता है?
क्योंकि प्रॉक्सी प्रमाणीकरण के लिए चुनौती दे रही है और आपने इसका उत्तर नहीं दिया है। अपने पहले page.goto() से पहले page.authenticate({ username, password }) कॉल करें — --proxy-server ध्वज में क्रेडेंशियल्स को क्रोमियम द्वारा अनदेखा किया जाता है।
क्या Puppeteer SOCKS5 प्रॉक्सी का उपयोग कर सकता है?
Chromium का प्रॉक्सी ध्वज SOCKS की ओर इशारा कर सकता है, लेकिन ब्राउज़र में प्रमाणित SOCKS5 अविश्वसनीय है। एक विश्वसनीय सेटअप के लिए पोर्ट 3128 पर HTTP एंडपॉइंट का उपयोग करें page.authenticate() के साथ।
क्या मुझे हर पृष्ठ को प्रमाणित करने की आवश्यकता है?
हाँ — नेविगेट करने से पहले प्रति पृष्ठ (या प्रति ब्राउज़र संदर्भ) page.authenticate() को एक बार कॉल करें। प्रत्येक संदर्भ अपने स्वयं के क्रेडेंशियल्स ले जाता है।
क्या एक प्रॉक्सी मुझे बॉट के रूप में पहचानने से रोकेगी?
नहीं। एक प्रॉक्सी केवल आपका IP बदलता है। एंटी-बॉट सिस्टम भी ब्राउज़र फिंगरप्रिंट और व्यवहार की जांच करते हैं, इसलिए एक प्रॉक्सी आवश्यक है लेकिन आक्रामक पहचान के खिलाफ पर्याप्त नहीं है।
प्रॉक्सी के पीछे हेडलेस क्रोम चलाएँ
प्रॉक्सी.s4m.online पर प्रमाणित डेटा सेंटर प्रॉक्सी, Puppeteer के page.authenticate() के लिए तैयार। मीटर के अनुसार भुगतान करें, स्थिर लॉगिन के लिए वैकल्पिक समर्पित IP के साथ।
लोगों ने इस पृष्ठ को खोजकर पाया
- प्रमाणीकरण के साथ Puppeteer प्रॉक्सी सेटअप
- आईपी पता को कैसे कॉन्फ़िगर करें
- आईपी पता ट्यूटोरियल
- आईपी पता
- वायरगार्ड ट्यूटोरियल
- डाउनलोड प्रॉक्सी प्रमाणीकरण
- काम कर रहा प्रॉक्सी सेटअप
- openvpn
- proxychains: SOCKS5 प्रॉक्सियों को कैसे चेन करें
- स्क्रैपिंग के लिए प्रॉक्सी मूल्य
- घुमाने वाले बनाम चिपचिपे प्रॉक्सी सत्र
- क्या स्क्रैपिंग के लिए प्रॉक्सी सुरक्षित है
- स्क्रैपिंग करते समय आईपी बैन से कैसे बचें
वास्तविक खोज वाक्यांश जिनका यह पृष्ठ उत्तर देता है — लिंक किए गए वाक्यांश उस पृष्ठ को खोलते हैं जो उन्हें गहराई से कवर करता है।