🎯 कस्टमाइज़ करने योग्य, डिटेक्शन-प्रतिरोधी क्लाउड ब्राउज़र जो स्व-विकसित Chromium द्वारा संचालित है, वेब क्रॉलर और एआई एजेंट्स के लिए डिज़ाइन किया गया। 👉अभी आज़माएं
वापस ब्लॉग पर

नोड फ़ेच प्रॉक्सी का उपयोग कैसे करें: पूर्ण कार्यान्वयन मार्गदर्शिका

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

23-Dec-2025
एक त्वरित नज़र डालें

Scrapeless Proxies के साथ Node.js प्रॉक्सी इंटीग्रेशन में महारत हासिल करें - डेवलपर्स के लिए तेज, विश्वसनीय और आसान-से-कार्यान्वित प्रॉक्सी समाधान।

Node Fetch और प्रॉक्सी इंटीग्रेशन का परिचय

Node.js स्केलेबल सर्वर-साइड एप्लिकेशन बनाने के लिए जाने-माने रनटाइम वातावरण बन गया है। HTTP अनुरोधों के साथ काम करते समय, Node Fetch API (या node-fetch लाइब्रेरी) बाहरी APIs और वेबसाइटों के लिए अनुरोध बनाने का एक सरल और शक्तिशाली तरीका प्रदान करती है। हालांकि, आपकी पहचान की रक्षा करने, भौगोलिक प्रतिबंधों को बायपास करने, या कई समवर्ती अनुरोधों का प्रबंधन करने के लिए, एक प्रॉक्सी सर्वर को आपके Node Fetch इम्प्लीमेंटेशन में शामिल करना आवश्यक है।

यह व्यापक मार्गदर्शिका आपको Node Fetch प्रॉक्सी सेटअप और उपयोग की पूरी प्रक्रिया के माध्यम से लेकर जाएगी, बुनियादी कॉन्फ़िगरेशन से लेकर उन्नत कार्यान्वयन रणनीतियों तक।

Node Fetch और प्रॉक्सियों को समझना

कार्यान्वयन में कूदने से पहले, चलिए स्पष्ट करते हैं कि हम किसके साथ काम कर रहे हैं:

Node Fetch एक हल्का HTTP क्लाइंट लाइब्रेरी है जो ब्राउज़रों से परिचित Fetch API को Node.js में लाती है। यह डेवलपर्स को सरल, प्रॉमिस-आधारित सिंटैक्स के साथ HTTP अनुरोध बनाने की अनुमति देती है।

प्रॉक्सियाँ आपके Node.js एप्लिकेशन और लक्ष्य सर्वर के बीच मध्यस्थ के रूप में कार्य करती हैं। आपके अनुरोध प्रॉक्सी सर्वर के माध्यम से रूट होते हैं, जो आपके असली IP पते को छिपाता है और लोड बैलेंसिंग, सामग्री फ़िल्टरिंग, और अनुरोध अनुकूलन जैसे अतिरिक्त लाभ प्रदान कर सकता है।

जब Node Fetch और प्रॉक्सी को जोड़ा जाता है, तो यह आपको सक्षम बनाता है:

  • गुमनामी बनाए रखते हुए वेबसाइटों से डेटा खींचें
  • भौगोलिक प्रतिबंधों और IP-आधारित अवरोधों को दरकिनार करें
  • कई IP पतों में अनुरोध वितरित करें
  • विभिन्न भौगोलिक स्थानों से अनुप्रयोगों का परीक्षण करें
  • API दर सीमाओं का अधिक प्रभावी ढंग से प्रबंधन करें

प्रॉक्सी के साथ Node Fetch सेट करना

चरण 1: आवश्यक निर्भरताएँ स्थापित करें

पहले, सुनिश्चित करें कि आपके सिस्टम पर Node.js स्थापित है (संस्करण 14.0 या उच्चतर अनुशंसित)। फिर, आवश्यक पैकेज स्थापित करें:

bash Copy
npm install node-fetch
npm install https-proxy-agent
npm install http-proxy-agent

प्रॉक्सी एजेंट पैकेज आपको अपने फेच अनुरोधों के लिए HTTP और HTTPS प्रॉक्सी सेटिंग्स कॉन्फ़िगर करने की अनुमति देते हैं।

चरण 2: प्रॉक्सी सेटिंग्स कॉन्फ़िगर करें

अपने प्रॉक्सी क्रेडेंशियल्स और सेटिंग्स को स्टोर करने के लिए एक कॉन्फ़िगरेशन फ़ाइल बनाएँ:

javascript Copy
// proxy-config.js
module.exports = {
  proxyUrl: 'http://proxy-server.com:8080',
  username: 'your-username',
  password: 'your-password',
  timeout: 30000,
  retries: 3
};

चरण 3: बुनियादी प्रॉक्सी अनुरोध लागू करें

यहाँ प्रॉक्सी के माध्यम से फेच अनुरोध बनाने का एक सरल उदाहरण है:

javascript Copy
const fetch = require('node-fetch');
const HttpProxyAgent = require('http-proxy-agent');
const HttpsProxyAgent = require('https-proxy-agent');
const config = require('./proxy-config');

async function fetchWithProxy(url) {
  const httpAgent = new HttpProxyAgent(config.proxyUrl);
  const httpsAgent = new HttpsProxyAgent(config.proxyUrl);

  try {
    const response = await fetch(url, {
      agent: url.startsWith('https') ? httpsAgent : httpAgent,
      timeout: config.timeout
    });

    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }

    return await response.json();
  } catch (error) {
    console.error('Fetch error:', error);
    throw error;
  }
}

// उपयोग
fetchWithProxy('https://api.example.com/data')
  .then(data => console.log(data))
  .catch(error => console.error(error));

चरण 4: प्रमाणीकरण के साथ उन्नत प्रॉक्सी कॉन्फ़िगरेशन

जो प्रॉक्सियाँ प्रमाणीकरण की आवश्यकता होती हैं, उनके लिए इस विस्तारित कॉन्फ़िगरेशन का उपयोग करें:

javascript Copy
const fetch = require('node-fetch');
const HttpProxyAgent = require('http-proxy-agent');
const HttpsProxyAgent = require('https-proxy-agent');

const proxyUrl = 'http://username:password@proxy-server.com:8080';

const httpAgent = new HttpProxyAgent(proxyUrl);
const httpsAgent = new HttpsProxyAgent(proxyUrl);

async function fetchWithAuthenticatedProxy(url) {
  try {
    const response = await fetch(url, {
      agent: url.startsWith('https') ? httpsAgent : httpAgent,
      headers: {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
      }
    });

    return await response.json();
  } catch (error) {
    console.error('Request failed:', error);
    throw error;
  }
}

उन्नत कार्यान्वयन रणनीतियाँ

प्रॉक्सी रोटेशन लागू करना

पता लगाने से बचने और दर सीमा को बायपास करने के लिए, स्वचालित प्रॉक्सी रोटेशन को लागू करें:

javascript Copy
const proxyList = [
  'http://proxy1.com:8080',
```hi
'http://proxy2.com:8080',
  'http://proxy3.com:8080'
];

let currentProxyIndex = 0;

function getNextProxy() {
  const proxy = proxyList[currentProxyIndex];
  currentProxyIndex = (currentProxyIndex + 1) % proxyList.length;
  return proxy;
}

async function fetchWithRotation(url) {
  const proxy = getNextProxy();
  const agent = new HttpsProxyAgent(proxy);

  try {
    const response = await fetch(url, { agent });
    return await response.json();
  } catch (error) {
    console.error(`Proxy ${proxy} विफल:`, error);
    throw error;
  }
}

पुनः प्रयास तर्क लागू करना

स्वचालित पुनः प्रयास तंत्र के साथ विश्वसनीयता बढ़ाएं:

javascript Copy
async function fetchWithRetry(url, maxRetries = 3) {
  let lastError;

  for (let attempt = 1; attempt <= maxRetries; attempt++) {
    try {
      const proxy = getNextProxy();
      const agent = new HttpsProxyAgent(proxy);

      const response = await fetch(url, {
        agent,
        timeout: 10000
      });

      if (response.ok) {
        return await response.json();
      }

      throw new Error(`HTTP ${response.status}`);
    } catch (error) {
      lastError = error;
      console.log(`प्रयास ${attempt} विफल:`, error.message);
      await new Promise(resolve => setTimeout(resolve, 1000 * attempt));
    }
  }

  throw lastError;
}

विभिन्न प्रतिक्रिया प्रकारों को संभालना

विभिन्न API विभिन्न सामग्री प्रकार लौटाते हैं। उन्हें उचित रूप से संभालें:

javascript Copy
async function fetchWithProxyAdvanced(url, options = {}) {
  const agent = new HttpsProxyAgent(options.proxy || 'http://proxy:8080');

  try {
    const response = await fetch(url, {
      agent,
      method: options.method || 'GET',
      headers: options.headers || {},
      timeout: options.timeout || 30000
    });

    if (!response.ok) {
      throw new Error(`HTTP ${response.status}`);
    }

    const contentType = response.headers.get('content-type');

    if (contentType && contentType.includes('application/json')) {
      return await response.json();
    } else if (contentType && contentType.includes('text')) {
      return await response.text();
    } else {
      return await response.buffer();
    }
  } catch (error) {
    console.error('फेचिंग त्रुटि:', error);
    throw error;
  }
}

अनुशंसित प्रॉक्सी समाधान

Scrapeless प्रॉक्सी: Node.js के लिए प्रीमियम प्रॉक्सी सेवाएं

Scrapeless प्रॉक्सी रियल आवासीय, डेटा केंद्र, IPv6, और स्थिर ISP IPs तक पहुँच प्रदान करते हैं, जो व्यक्तिगत और उद्यम उपयोगकर्ताओं के लिए डिज़ाइन किए गए हैं। 195+ देशों में 90 मिलियन से अधिक आवासीय आईपी के साथ, Scrapeless Node.js अनुप्रयोगों के लिए बेजोड़ कवरेज, गति और विश्वसनीयता प्रदान करता है।

🌍 आवासीय प्रॉक्सी

Node.js वेब स्क्रैपिंग और डेटा संग्रह के लिए परफेक्ट:

  • 90M+ असली आईपी: 195+ देशों में 90 मिलियन से अधिक आवासीय आईपी पते तक पहुँच
  • स्वचालित घुमाव: निर्बाध आईपी घुमाव अवरुद्ध और पहचान को रोकता है
  • 99.98% सफलता दर: उद्योग में सबसे आगे की विश्वसनीयता सुनिश्चित करती है कि आपके अनुरोध सफल होते हैं
  • भौगोलिक लक्ष्यीकरण समर्थन: विशिष्ट भौगोलिक स्थानों को सटीकता के साथ लक्षित करें
  • मल्टी-प्रोटोकॉल समर्थन: HTTP, HTTPS, और SOCKS5 प्रोटोकॉल उपयोग के लिए उपलब्ध
  • अल्ट्रा-फास्ट प्रदर्शन: समय-समय पर संचालन के लिए 0.5 सेकंड से कम प्रतिक्रिया समय
  • आसान Node.js एकीकरण: node-fetch और अन्य HTTP ग्राहकों के साथ सरल सेटअप

⚡ डेटा केंद्र प्रॉक्सी

उच्च प्रदर्शन वाले Node.js अनुप्रयोगों के लिए:

  • 99.99% अपटाइम: उद्यम-ग्रेड विश्वसनीयता
  • अल्ट्रा-फास्ट प्रतिक्रिया: उच्च प्रदर्शन वाले अनुप्रयोगों के लिए अनुकूलित
  • असीमित सत्र: सत्र अवधि की कोई सीमा नहीं
  • आसान API एकीकरण: सरल सेटअप और Node.js के साथ निर्बाध एकीकरण
  • उच्च बैंडविड्थ: बड़े पैमाने पर संचालन के लिए आदर्श
  • कम विलंबता: सुचारू प्रदर्शन सुनिश्चित करने के लिए न्यूनतम देरी
  • लागत प्रभावी: उच्च वॉल्यूम अनुरोधों के लिए किफायती समाधान

🔐 IPv6 प्रॉक्सी

अगली पीढ़ी के IPv6 प्रॉक्सी समाधान:

  • 50M+ IPv6 आईपी: सत्यापित IPv6 पते का विस्तृत पूल
  • स्वचालित घुमाव: बुद्धिमान घुमाव तंत्र
  • उच्च गोपनीयता: अधिकतम गोपनीयता सुरक्षा
  • GDPR और CCPA अनुपालन: पूर्ण नियामक अनुपालन
  • प्रति-GB बिलिंग: लचीला, पारदर्शी मूल्य निर्धारण मॉडल

🏠 स्थिर ISP प्रॉक्सी

दीर्घकालिक Node.js सत्रों के लिए:

  • समर्पित स्थिर आईपी: विश्वसनीय सत्रों के लिए निरंतर आईपी पते
  • 99.99% अपटाइम: उद्यम-ग्रेड विश्वसनीयता
  • कम विलंबता: न्यूनतम प्रतिक्रिया देरी
  • API के लिए परफेक्ट: बिना रुकावट के निरंतर कनेक्शन बनाए रखें
``` ## नोड फ़ेच प्रॉक्सियों के लिए सर्वश्रेष्ठ प्रथाएँ

हमेशा HTTPS एजेंट का उपयोग करें: सुरक्षित कनेक्शनों के लिए, हमेशा एन्क्रिप्शन बनाए रखने के लिए HttpProxyAgent के बजाय HttpsProxyAgent का उपयोग करें।

त्रुटि प्रबंधन लागू करें: प्रॉक्सियां विफल हो सकती हैं। हमेशा अपनी फ़ेच कॉल को ट्राई-कैच ब्लॉकों में लपेटें और पुनः प्रयास तर्क लागू करें।

उचित समय सीमा सेट करें: प्रॉक्सियां विलंब जोड़ सकती हैं। लटकने वाली अनुरोधों से बचने के लिए उचित समय सीमा मान सेट करें (आमतौर पर 30-60 सेकंड)।

प्रॉक्सी प्रदर्शन की निगरानी करें: विफल प्रॉक्सियों की पहचान करने और प्रदर्शन को अनुकूलित करने के लिए सफलता दर और प्रतिक्रिया समय का ट्रैक रखें।

यूजर-एजेंट को रोटेट करें: पहचान जोखिम को और कम करने के लिए प्रॉक्सी रोटेशन के साथ यूजर-एजेंट रोटेशन को जोड़ें।

रेट सीमाओं का पालन करें: प्रॉक्सियों के साथ भी, लक्षित वेबसाइट की रेट सीमाओं और robots.txt निर्देशों का पालन करें।

लॉग और डिबग करें: समस्याओं को ठीक करने और पैटर्न को ट्रैक करने के लिए प्रॉक्सी उपयोग के विस्तृत लॉग बनाए रखें।

सामान्य मुद्दों का समाधान

प्रॉक्सी कनेक्शन अस्वीकृत

समस्या: प्रॉक्सी से कनेक्ट करते समय "ECONNREFUSED" त्रुटियां मिल रही हैं।

समाधान: प्रॉक्सी सर्वर का पता और पोर्ट सही हैं यह सुनिश्चित करें, प्रॉक्सी सर्वर चालू है यह सुनिश्चित करें, और यह जांचें कि फायरवॉल नियम कनेक्शन को बाधित नहीं कर रहे हैं।

प्रमाणीकरण विफलताएँ

समस्या: सही क्रेडेंशियल्स होने के बावजूद प्रमाणीकरण त्रुटियाँ मिल रही हैं।

समाधान: सुनिश्चित करें कि क्रेडेंशियल्स प्रॉक्सी यूआरएल में सही तरीके से स्वरूपित हैं, विशेष वर्णों के लिए URL को एन्कोड करने की आवश्यकता है यह जांचें, और अपने प्रॉक्सी प्रदाता के साथ क्रेडेंशियल्स की पुष्टि करें।

समय सीमा त्रुटियाँ

समस्या: प्रॉक्सी के माध्यम से जाने पर अनुरोध समय सीमा पार कर रहे हैं।

समाधान: समय सीमा मान को बढ़ाएँ, प्रॉक्सी सर्वर प्रदर्शन की जांच करें, समवर्ती अनुरोधों को कम करें, और एक्सपोनेंशियल बैकऑफ के साथ पुनः प्रयास तर्क लागू करें।

प्रॉक्सी के बावजूद IP ब्लॉक

समस्या: प्रॉक्सी का उपयोग करने के बावजूद भी ब्लॉक हो रहे हैं।

समाधान: प्रॉक्सियों को और अधिक बार घुमाएँ, डेटा सेंटर के बजाय आवासीय प्रॉक्सियों का उपयोग करें, उचित यूजर-एजेंट हेडर जोड़ें, और अधिक मानवीय जैसे दिखने के लिए अनुरोध पैटर्न में विविधता लाएँ।

अक्सर पूछे जाने वाले प्रश्न

नोड-फेच और अंतर्निहित फेच के बीच क्या अंतर है?

Node.js 18+ में मूल फेच समर्थन शामिल है। हालांकि, नोड-फेच अभी भी पुराने Node.js संस्करणों के साथ संगतता के लिए और क्योंकि यह अधिक अनुकूलन विकल्प प्रदान करता है, व्यापक रूप से उपयोग किया जाता है।

क्या मैं नोड फ़ेच के साथ SOCKS5 प्रॉक्सी का उपयोग कर सकता हूँ?

हाँ, लेकिन आपको मानक प्रॉक्सी एजेंट के बजाय socks-proxy-agent पैकेज का उपयोग करना होगा। इसे npm install socks-proxy-agent के साथ इंस्टॉल करें।

मैं प्रॉक्सी प्रमाणीकरण को सही तरीके से कैसे संभाल सकता हूँ?

क्रेडेंशियल्स को सीधे प्रॉक्सी यूआरएल में शामिल करें: http://username:password@proxy:port। विशेष वर्णों के लिए, URL एन्कोडिंग का उपयोग करें।

क्या मुझे हर अनुरोध के लिए प्रॉक्सियाँ घुमानी चाहिए?

यह आपके उपयोग केस पर निर्भर करता है। वेब स्क्रैपिंग के लिए, प्रॉक्सियों को बार-बार घुमाएँ। एपीआई कॉल के लिए, आप केवल तब घुमाने की आवश्यकता हो सकती है जब आप रेट सीमाएँ पर hit करें।

प्रॉक्सी के माध्यम से अधिकतम समवर्ती अनुरोधों की संख्या क्या है?

यह प्रॉक्सी प्रदाता की सीमाओं पर निर्भर करता है। अधिकांश सैकड़ों समवर्ती कनेक्शनों की अनुमति देते हैं। विशिष्ट सीमाओं के लिए अपने प्रदाता की दस्तावेज़ीकरण की जाँच करें।

मैं कैसे परीक्षण कर सकता हूँ कि मेरी प्रॉक्सी कॉन्फ़िगरेशन काम कर रही है?

एक सरल इको सेवा या IP-चेकिंग API (जैसे https://httpbin.org/ip) पर एक परीक्षण अनुरोध करें और सुनिश्चित करें कि प्रतिक्रिया प्रॉक्सी के आईपी को दिखाती है न कि आपके असली आईपी को।

निष्कर्ष

नोड फ़ेच के साथ प्रॉक्सियों का एकीकरण मजबूत, स्केलेबल वेब अनुप्रयोग बनाने के लिए एक शक्तिशाली तकनीक है। चाहे आप डेटा स्क्रैप कर रहे हों, एपीआई अनुरोध प्रबंधित कर रहे हों, या अपनी गुमनामी की रक्षा कर रहे हों, इन सर्वश्रेष्ठ प्रथाओं का पालन करना आपको एक विश्वसनीय प्रॉक्सी समाधान लागू करने में मदद करेगा।

स्क्रैपलेस प्रॉक्सियों के व्यापक आईपी पूल और विश्वसनीय इन्फ्रास्ट्रक्चर के साथ, आप उत्पादन-ग्रेड प्रॉक्सी समाधान लागू कर सकते हैं जो सबसे अधिक मांग वाली उपयोग मामलों को भी संभालते हैं। आज ही अपना निःशुल्क परीक्षण शुरू करें और जानें कि गुणवत्ता प्रॉक्सियाँ आपके Node.js अनुप्रयोगों के लिए क्या अंतर ला सकती हैं।

स्क्रैपलेस में, हम केवल सार्वजनिक रूप से उपलब्ध डेटा का उपयोग करते हैं, जबकि लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से अनुपालन करते हैं। इस ब्लॉग में सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई अवैध या उल्लंघन करने वाली गतिविधियों को शामिल नहीं किया गया है। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए सभी देयता को कोई गारंटी नहीं देते हैं और सभी देयता का खुलासा करते हैं। किसी भी स्क्रैपिंग गतिविधियों में संलग्न होने से पहले, अपने कानूनी सलाहकार से परामर्श करें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।

सबसे लोकप्रिय लेख

सूची