Back to Blog

AI प्रशिक्षण के लिए प्रॉक्सी: बिना ब्लॉक के मॉडलों के लिए लाखों डेटा कैसे इकट्ठा करें

हम यह समझते हैं कि एआई-मॉडल के लिए डेटा संग्रह को सही तरीके से कैसे व्यवस्थित किया जाए: आईपी के प्रकार के चयन से लेकर रोटेशन सेटिंग और एंटी-बॉट सिस्टम को बायपास करने तक।

📅March 5, 2026
```html

AI मॉडल का प्रशिक्षण विशाल मात्रा में डेटा की आवश्यकता होती है - पाठ, चित्र, वीडियो, वेबसाइटों से संरचित जानकारी। समस्या यह है कि जब बड़े पैमाने पर पार्सिंग की जाती है, तो वेबसाइटें जल्दी से IP पते को ब्लॉक कर देती हैं, इसे बॉट गतिविधि मानते हुए। इस लेख में हम समझेंगे कि प्रॉक्सी के माध्यम से डेटा संग्रह को सही तरीके से कैसे व्यवस्थित किया जाए, विभिन्न कार्यों के लिए किस प्रकार का IP चुनें और स्थिर कार्य के लिए अवसंरचना को कैसे सेट करें।

AI प्रशिक्षण के लिए प्रॉक्सी की आवश्यकता क्यों है

आधुनिक भाषा मॉडल जैसे GPT, LLaMA या Claude अरबों टेक्स्ट टोकन पर प्रशिक्षित होते हैं। कंप्यूटर दृष्टि मॉडल को लाखों चित्रों की आवश्यकता होती है। सिफारिश प्रणाली हजारों वेबसाइटों पर उपयोगकर्ताओं के व्यवहार का विश्लेषण करती हैं। इन सभी डेटा को कहीं से प्राप्त करना आवश्यक है।

मुख्य समस्या यह है कि वेबसाइटें बड़े पैमाने पर पार्सिंग के खिलाफ सक्रिय रूप से सुरक्षा करती हैं। यदि आप एक IP से प्रति मिनट 100+ अनुरोध भेजते हैं, तो आपको 5-10 मिनट में ब्लॉक कर दिया जाएगा। ब्लॉक करने के कारण:

  • रेट लिमिटिंग: एक IP से अनुरोधों की संख्या पर सीमा (आमतौर पर 10-60 अनुरोध प्रति मिनट)
  • एंटी-बॉट सिस्टम: Cloudflare, Akamai, PerimeterX व्यवहार का विश्लेषण करते हैं और संदिग्ध गतिविधियों को ब्लॉक करते हैं
  • भौगोलिक सीमाएँ: कुछ सामग्री केवल विशिष्ट देशों से उपलब्ध है
  • प्रतिस्पर्धियों से सुरक्षा: मार्केटप्लेस और एग्रीगेटर मूल्य और उत्पादों के बड़े पैमाने पर संग्रह को ब्लॉक करते हैं

प्रॉक्सी इस समस्या का समाधान करती हैं, अनुरोधों को हजारों विभिन्न IP पतों के माध्यम से वितरित करके। एक IP से 1000 अनुरोधों के बजाय, आप 500-1000 विभिन्न पतों में से प्रत्येक से 1-2 अनुरोध करते हैं - यह सामान्य उपयोगकर्ताओं की गतिविधि के रूप में दिखाई देता है।

डेटा संग्रह के लिए किस प्रकार की प्रॉक्सी चुनें

AI प्रशिक्षण के लिए तीन प्रकार की प्रॉक्सी का उपयोग किया जाता है, प्रत्येक के अपने फायदे और सीमाएँ होती हैं। चयन डेटा स्रोत, मात्रा और परियोजना के बजट पर निर्भर करता है।

प्रॉक्सी का प्रकार गति वेबसाइटों पर विश्वास लागत कब उपयोग करें
डेटा सेंटर 100-1000 एमबीपीएस कम $0.5-2/IP खुले API, बिना सुरक्षा वाली साधारण वेबसाइटें
रेसिडेंशियल 10-50 एमबीपीएस उच्च $5-15/जीबी सोशल मीडिया, Cloudflare वाली वेबसाइटें, ई-कॉमर्स
मोबाइल 5-30 एमबीपीएस बहुत उच्च $10-30/जीबी मोबाइल ऐप्स, सख्त सुरक्षा

डेटा सेंटर प्रॉक्सी: बड़े वॉल्यूम के लिए गति

डेटा सेंटर प्रॉक्सी - ये क्लाउड प्रदाताओं (AWS, Google Cloud, Hetzner) में सर्वरों के IP पते हैं। इसका मुख्य लाभ - गति और कम लागत। एक डेटा सेंटर IP प्रति सेकंड सैकड़ों अनुरोधों को संभाल सकता है।

ये उन स्रोतों से डेटा संग्रह के लिए उपयुक्त हैं जो आक्रामक सुरक्षा का उपयोग नहीं करते हैं: खुले API (GitHub, Wikipedia, Stack Overflow), सरकारी डेटाबेस, बिना Cloudflare वाली समाचार वेबसाइटें, वैज्ञानिक प्रकाशन। यदि वेबसाइट डेटा को बिना JavaScript रेंडरिंग के प्रदान करती है और ब्राउज़र के फिंगरप्रिंट की जांच नहीं करती है - तो डेटा सेंटर काम करेंगे।

कमी यह है कि कई वेबसाइटें डेटा सेंटर IP की ब्लैकलिस्ट बनाती हैं। Instagram, Facebook, Google Search, बड़े मार्केटप्लेस डेटा सेंटर IP को लगभग तुरंत ब्लॉक कर देते हैं। ऐसे स्रोतों के लिए रेसिडेंशियल की आवश्यकता होती है।

रेसिडेंशियल प्रॉक्सी: किसी भी सुरक्षा को बायपास करना

रेसिडेंशियल प्रॉक्सी वास्तविक घरेलू उपयोगकर्ताओं के IP पतों का उपयोग करती हैं। वेबसाइट के लिए ऐसा अनुरोध एक सामान्य घर के आगंतुक के रूप में दिखाई देता है। यह Cloudflare, Akamai को बायपास करने और सोशल मीडिया और सुरक्षित प्लेटफार्मों से डेटा संग्रह करने की अनुमति देता है।

रेसिडेंशियल की आवश्यकता होती है: Instagram, Facebook, Twitter/X (पोस्ट, टिप्पणियों, प्रोफाइल का संग्रह), Google Search (NLP मॉडल के लिए खोज परिणामों का पार्सिंग), मार्केटप्लेस (Amazon, eBay, Wildberries - उत्पाद, समीक्षाएँ, मूल्य), geo-सीमाओं वाली वेबसाइटें (सामग्री केवल विशिष्ट देशों से उपलब्ध है)।

लागत अधिक है - ट्रैफ़िक के लिए भुगतान ($5-15 प्रति जीबी)। बचत के लिए रेसिडेंशियल का उपयोग केवल महत्वपूर्ण स्रोतों के लिए करें, और साधारण वेबसाइटों को डेटा सेंटर के माध्यम से पार्स करें।

मोबाइल प्रॉक्सी: मोबाइल ऐप्स के लिए

मोबाइल प्रॉक्सी मोबाइल ऑपरेटरों (4G/5G) के IP का उपयोग करती हैं। इनकी आवश्यकता कम होती है - मुख्य रूप से मोबाइल ऐप्स (TikTok, Instagram ऐप, मोबाइल गेम) से डेटा संग्रह के लिए या जब वेबसाइट मोबाइल और डेस्कटॉप ट्रैफ़िक में भेद करती है।

मोबाइल IP का लाभ - ऑपरेटर CGNAT का उपयोग करते हैं (एक IP सैकड़ों उपयोगकर्ताओं के लिए), इसलिए ऐसे पतों को ब्लॉक करना लाभदायक नहीं है। लेकिन अधिकांश AI प्रशिक्षण कार्यों के लिए रेसिडेंशियल पर्याप्त हैं।

डेटा स्रोतों के प्रकार और प्रॉक्सी की आवश्यकताएँ

विभिन्न प्रकार के डेटा को प्रॉक्सी के लिए विभिन्न दृष्टिकोण की आवश्यकता होती है। AI मॉडल के प्रशिक्षण के लिए लोकप्रिय स्रोतों पर विचार करें।

NLP मॉडल के लिए टेक्स्ट डेटा

भाषा मॉडल के प्रशिक्षण के लिए समाचार वेबसाइटों, फोरम, ब्लॉग, सोशल मीडिया, Wikipedia और विशेष संसाधनों से टेक्स्ट एकत्र किया जाता है। मात्रा - दर्जनों टेराबाइट टेक्स्ट।

प्रॉक्सी के लिए सिफारिश: समाचार वेबसाइटें और ब्लॉग - डेटा सेंटर (गति अधिक महत्वपूर्ण है)। Reddit, Quora जैसे फोरम - रेसिडेंशियल (रेट लिमिटिंग है)। Twitter, Facebook, Instagram - केवल रेसिडेंशियल जो हर 5-10 मिनट में रोटेट होते हैं।

टेक्स्ट पार्सिंग की विशेषता - संरचना को बनाए रखना आवश्यक है (शीर्षक, अनुच्छेद, मेटाडेटा)। JavaScript वेबसाइटों के लिए headless-ब्राउज़र (Puppeteer, Playwright) का उपयोग करें या स्थिर पृष्ठों के लिए सरल HTTP क्लाइंट (requests, axios) का उपयोग करें।

कंप्यूटर दृष्टि के लिए चित्र

पहचान मॉडल के प्रशिक्षण के लिए लेबल वाले लाखों चित्रों की आवश्यकता होती है। स्रोत: Google Images, Pinterest, Instagram, विशेष फोटो स्टॉक्स, ई-कॉमर्स वेबसाइटें (उत्पादों की तस्वीरें)।

समस्या यह है कि चित्रों का आकार बड़ा होता है (औसत आकार 200-500 KB), इसलिए ट्रैफ़िक जल्दी से समाप्त हो जाता है। रेसिडेंशियल प्रॉक्सी का उपयोग करते समय (जीबी के लिए भुगतान) यह महत्वपूर्ण है। अनुकूलन रणनीति: पहले रेसिडेंशियल के माध्यम से चित्रों के URL एकत्र करें, फिर डेटा सेंटर या सीधे (यदि CDN रेफरर की जांच नहीं करता है) के माध्यम से फ़ाइलें डाउनलोड करें।

ई-कॉमर्स से संरचित डेटा

उत्पादों, कीमतों, समीक्षाओं के बारे में डेटा सिफारिश प्रणाली और मूल्य निर्धारण मॉडल के प्रशिक्षण के लिए उपयोग किया जाता है। स्रोत: Amazon, eBay, Wildberries, Ozon, AliExpress।

सभी बड़े मार्केटप्लेस Cloudflare या अपनी एंटी-बॉट सिस्टम का उपयोग करते हैं। रोटेशन के साथ रेसिडेंशियल प्रॉक्सी की आवश्यकता होती है। इसके अतिरिक्त, ब्राउज़र के सही फिंगरप्रिंट का होना महत्वपूर्ण है - स्वचालन को छिपाने के लिए puppeteer-extra-plugin-stealth जैसे उपकरणों का उपयोग करें।

वीडियो और ऑडियो डेटा

YouTube, TikTok, पॉडकास्ट प्लेटफार्म - आवाज और वीडियो पहचान मॉडल के प्रशिक्षण के लिए स्रोत। समस्या - विशाल ट्रैफ़िक (एक वीडियो = सैकड़ों MB)। ऐसे कार्यों के लिए रेसिडेंशियल प्रॉक्सी आर्थिक रूप से लाभदायक नहीं हैं।

समाधान: रेसिडेंशियल का उपयोग केवल मेटाडेटा और वीडियो के लिंक प्राप्त करने के लिए करें, और डाउनलोड डेटा सेंटर या विशेष उपकरणों जैसे yt-dlp के माध्यम से करें (वे बिना प्रॉक्सी के YouTube की सीमाओं को बायपास कर सकते हैं)।

विभिन्न मात्रा के लिए IP रोटेशन रणनीतियाँ

IP रोटेशन - स्थिर पार्सिंग के लिए एक महत्वपूर्ण बिंदु। गलत सेटिंग्स ब्लॉकों या ट्रैफ़िक के लिए अधिक भुगतान का कारण बन सकती हैं।

अनुरोध के अनुसार रोटेशन (रोटेटिंग प्रॉक्सी)

प्रत्येक अनुरोध एक नए IP के माध्यम से जाता है। यह विभिन्न वेबसाइटों के बड़े पैमाने पर पार्सिंग के लिए उपयुक्त है, जब सत्र को बनाए रखने की आवश्यकता नहीं होती है। उदाहरण के लिए, 10000 विभिन्न समाचार वेबसाइटों से टेक्स्ट संग्रह - प्रत्येक वेबसाइट एक IP से केवल 1-2 अनुरोध देखती है।

import requests

# रोटेटिंग प्रॉक्सी - प्रत्येक अनुरोध नया IP
proxies = {
    'http': 'http://username:password@rotating.proxycove.com:12345',
    'https': 'http://username:password@rotating.proxycove.com:12345'
}

urls = ['https://site1.com', 'https://site2.com', ...]
for url in urls:
    response = requests.get(url, proxies=proxies)
    # प्रत्येक अनुरोध एक नए IP से जाता है
    parse_data(response.text)

लाभ - ब्लॉकों से अधिकतम सुरक्षा। कमी - उन वेबसाइटों के साथ काम करना असंभव है जो प्रमाणीकरण या कुकीज़ को बनाए रखने की आवश्यकता होती हैं।

समय के अनुसार रोटेशन (स्टिकी सत्र)

IP 5-30 मिनट के लिए बनाए रखा जाता है, फिर बदल जाता है। यह एक वेबसाइट के पार्सिंग के लिए उपयुक्त है जिसमें पेजिनेशन होता है, जब पृष्ठों 1, 2, 3... के माध्यम से जाना आवश्यक होता है और सत्र को बनाए रखना होता है।

import requests
import time

# स्टिकी सत्र - IP 10 मिनट के लिए बनाए रखा जाता है
session_id = generate_random_string()  # सत्र का अद्वितीय ID
proxies = {
    'http': f'http://username-session-{session_id}:password@sticky.proxycove.com:12345'
}

# 10 मिनट के भीतर सभी अनुरोध एक IP से होते हैं
for page in range(1, 100):
    url = f'https://site.com/catalog?page={page}'
    response = requests.get(url, proxies=proxies)
    parse_page(response.text)
    time.sleep(2)  # अनुरोधों के बीच में देरी

सत्र का समय वेबसाइट की रेट लिमिट के आधार पर सेट करें। यदि सीमा 60 अनुरोध प्रति मिनट है, तो 1-2 मिनट का सत्र सेट करें और 50 अनुरोधों से अधिक न करें।

स्थिर IP का पूल

आप 100-1000 IP की सूची प्राप्त करते हैं और अनुरोधों के वितरण को स्वयं प्रबंधित करते हैं। यह जटिल परिदृश्यों के लिए उपयुक्त है, जब पूर्ण नियंत्रण की आवश्यकता होती है: वेबसाइट के विभिन्न अनुभागों के समानांतर पार्सिंग, लोड संतुलन, कस्टम रोटेशन लॉजिक।

import requests
from itertools import cycle

# 500 स्थिर IP का पूल
ip_pool = [
    'http://user:pass@ip1.proxycove.com:12345',
    'http://user:pass@ip2.proxycove.com:12345',
    # ... 500 पते
]

proxy_cycle = cycle(ip_pool)

for url in urls:
    proxy = next(proxy_cycle)  # पूल से अगला IP लें
    response = requests.get(url, proxies={'http': proxy, 'https': proxy})
    parse_data(response.text)

यह दृष्टिकोण अधिकतम लचीलापन प्रदान करता है, लेकिन त्रुटियों को संभालने के लिए अधिक कोड की आवश्यकता होती है (यदि IP ब्लॉक किया गया है, तो इसे पूल से बाहर करना आवश्यक है)।

पार्सिंग के दौरान एंटी-बॉट सिस्टम को बायपास करना

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

एंटी-बॉट सिस्टम क्या जांचते हैं

  • User-Agent: वास्तविक ब्राउज़र (Chrome, Firefox) के अनुरूप होना चाहिए, "headless" या "bot" शब्द नहीं होना चाहिए
  • Headers: हेडर का सेट ब्राउज़र के लिए सामान्य होना चाहिए (Accept, Accept-Language, Accept-Encoding, Referer)
  • TLS fingerprint: SSL कनेक्शन के पैरामीटर ब्राउज़रों और स्क्रिप्टों में भिन्न होते हैं
  • JavaScript fingerprint: WebGL, Canvas, AudioContext, फ़ॉन्ट, प्लगइन, स्क्रीन का रिज़ॉल्यूशन
  • व्यवहार: माउस की गति, स्क्रॉलिंग की गति, क्लिक (JavaScript रेंडरिंग वाली वेबसाइटों के लिए)

स्वचालन को छिपाने के लिए उपकरण

उन्नत सुरक्षा को बायपास करने के लिए headless-ब्राउज़रों का उपयोग करें जिनमें छिपाने वाले प्लगइन्स हों:

// Puppeteer के साथ स्टील्थ प्लगइन
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());

const browser = await puppeteer.launch({
    headless: true,
    args: [
        '--proxy-server=http://username:password@residential.proxycove.com:12345',
        '--disable-blink-features=AutomationControlled'
    ]
});

const page = await browser.newPage();
// वास्तविकता के अनुसार व्यू पोर्ट सेट करें
await page.setViewport({ width: 1920, height: 1080 });

// यादृच्छिक देरी जोड़ें
await page.goto('https://protected-site.com');
await page.waitForTimeout(2000 + Math.random() * 3000);

const data = await page.evaluate(() => {
    return document.querySelector('.data').innerText;
});

await browser.close();

Python के लिए Playwright का उपयोग करें जिसमें समान सेटिंग्स हों या Selenium का उपयोग करें जिसमें undetected-chromedriver हो - एक पुस्तकालय जो स्वचालन को बायपास करने के लिए ChromeDriver को स्वचालित रूप से पैच करता है।

Cloudflare और अन्य WAF को बायपास करना

Cloudflare ब्राउज़र की जांच के लिए JavaScript चुनौती का उपयोग करता है। साधारण HTTP क्लाइंट (requests, axios) इसे पार नहीं कर सकते। समाधान:

  • हेडलेस-ब्राउज़र: Puppeteer/Playwright स्टील्थ प्लगइन के साथ अधिकांश चुनौतियों को पार करते हैं
  • तैयार समाधान: cloudscraper (Python) या puppeteer-extra-plugin-recaptcha जैसे पुस्तकालय
  • बायपास सेवाएँ: विशेष API (FlareSolverr, Anti-Captcha) आपके लिए चुनौतियों को हल करते हैं

महत्वपूर्ण: सही फिंगरप्रिंट के साथ भी अनुरोधों के बीच में विराम लें। एक सेकंड में 100 अनुरोध भेजना, भले ही ब्राउज़र का फिंगरप्रिंट सही हो, फिर भी संदिग्ध लगता है। आदर्श गति - एक IP से प्रति मिनट 10-30 अनुरोध।

डेटा संग्रह के लिए अवसंरचना की वास्तुकला

AI प्रशिक्षण के लिए डेटा संग्रह के लिए औद्योगिक पैमाने पर एक सुविचारित वास्तुकला की आवश्यकता होती है। एक सर्वर पर एक साधारण स्क्रिप्ट टेराबाइट डेटा के पार्सिंग में सक्षम नहीं होगी।

संग्रह प्रणाली के घटक

1. कार्य कतार (Task Queue)

पार्सिंग के लिए URL की सूची को संग्रहीत करता है। Redis, RabbitMQ या AWS SQS का उपयोग करें। कार्यों को श्रमिकों के बीच वितरित करने और गिराए गए कार्यों को पुनः प्रस्तुत करने की अनुमति देता है।

2. श्रमिक (Workers)

प्रक्रियाएँ जो कतार से कार्य लेती हैं और पार्सिंग करती हैं। विभिन्न सर्वरों पर समानांतर में 10-100 श्रमिकों को चलाएँ। प्रत्येक श्रमिक अपनी प्रॉक्सी या प्रॉक्सी के पूल का उपयोग करता है।

3. डेटा भंडारण (Storage)

जहाँ एकत्रित डेटा संग्रहीत होता है। टेक्स्ट के लिए - S3/MinIO (ऑब्जेक्ट स्टोरेज)। संरचित डेटा के लिए - PostgreSQL या MongoDB। बड़े वॉल्यूम के लिए - डेटा लेक (AWS S3 + Athena, Google Cloud Storage)।

4. निगरानी (Monitoring)

पार्सिंग की गति, त्रुटियों का प्रतिशत, ट्रैफ़िक की खपत की निगरानी। Grafana + Prometheus या Datadog जैसे तैयार समाधानों का उपयोग करें। महत्वपूर्ण मैट्रिक्स (त्रुटियों का प्रतिशत >10%, गति 2 गुना कम हो गई) पर अलर्ट सेट करें।

Python पर वास्तुकला का उदाहरण

# worker.py - पार्सिंग प्रक्रिया
import redis
import requests
import json
from datetime import datetime

# Redis से कनेक्शन (कार्य कतार)
queue = redis.Redis(host='redis-server', port=6379)
# प्रॉक्सी का पूल
proxies_pool = load_proxies_from_config()

while True:
    # कतार से कार्य लें
    task = queue.blpop('parsing_queue', timeout=5)
    if not task:
        continue
    
    url = task[1].decode('utf-8')
    proxy = get_next_proxy(proxies_pool)
    
    try:
        response = requests.get(
            url, 
            proxies={'http': proxy, 'https': proxy},
            timeout=30,
            headers={'User-Agent': get_random_user_agent()}
        )
        
        # डेटा पार्स करें
        data = parse_html(response.text)
        
        # S3 में सहेजें
        save_to_s3(data, f'data/{datetime.now().isoformat()}/{hash(url)}.json')
        
        # सफलता लॉग करें
        log_success(url, proxy)
        
    except Exception as e:
        # त्रुटि होने पर कार्य को कतार में वापस करें
        queue.rpush('parsing_queue', url)
        log_error(url, proxy, str(e))
        mark_proxy_as_failed(proxy)

यह वास्तुकला क्षैतिज रूप से स्केल करने की अनुमति देती है - बस श्रमिकों के साथ नए सर्वर जोड़ें। यदि एक श्रमिक गिरता है, तो अन्य कार्य करते रहते हैं।

स्वचालन के लिए उपकरण

औद्योगिक पार्सिंग के लिए विशेष रूप से डिज़ाइन किए गए ढांचे का उपयोग किया जाता है, जो बॉक्स से बाहर सामान्य कार्यों को हल करते हैं।

Scrapy - Python के लिए ढांचा

Scrapy - Python में वेब स्क्रैपिंग के लिए सबसे लोकप्रिय उपकरण है। यह बॉक्स से बाहर समर्थन करता है: समानांतर पार्सिंग (सैकड़ों अनुरोध एक साथ), त्रुटियों पर स्वचालित पुनः प्रयास, प्रॉक्सी और User-Agent के रोटेशन के लिए मिडलवेयर, JSON, CSV, XML, डेटाबेस में निर्यात।

# settings.py - प्रॉक्सी के साथ Scrapy का सेटअप
ROTATING_PROXY_LIST = [
    'http://user:pass@proxy1.proxycove.com:12345',
    'http://user:pass@proxy2.proxycove.com:12345',
    # ... प्रॉक्सी की सूची
]

DOWNLOADER_MIDDLEWARES = {
    'rotating_proxies.middlewares.RotatingProxyMiddleware': 610,
    'rotating_proxies.middlewares.BanDetectionMiddleware': 620,
}

# समानांतरता
CONCURRENT_REQUESTS = 100
DOWNLOAD_DELAY = 0.5  # अनुरोधों के बीच में देरी

Scrapy स्थिर वेबसाइटों के लिए उपयुक्त है (HTML बिना JavaScript)। गतिशील वेबसाइटों के लिए Scrapy + Splash (हेडलेस-ब्राउज़र) का उपयोग करें या Playwright पर स्विच करें।

Crawlee - Node.js के लिए ढांचा

Crawlee (पहले Apify SDK) - JavaScript के लिए Scrapy का समकक्ष। लाभ - Puppeteer और Playwright के साथ स्वदेशी कार्य, प्रॉक्सी का अंतर्निहित रोटेशन, स्वचालित कार्य प्रबंधन, अनुकूलन गति पार्सिंग (त्रुटियों पर धीमी)।

import { PlaywrightCrawler, ProxyConfiguration } from 'crawlee';

const proxyConfiguration = new ProxyConfiguration({
    proxyUrls: [
        'http://user:pass@proxy1.proxycove.com:12345',
        'http://user:pass@proxy2.proxycove.com:12345',
    ],
});

const crawler = new PlaywrightCrawler({
    proxyConfiguration,
    maxConcurrency: 50,
    requestHandler: async ({ page, request }) => {
        await page.waitForSelector('.data');
        const data = await page.$$eval('.item', items => 
            items.map(item => ({
                title: item.querySelector('h2').innerText,
                price: item.querySelector('.price').innerText
            }))
        );
        await saveData(data);
    },
});

await crawler.run(['https://site.com/catalog']);

Apache Nutch - बड़े पैमाने पर क्रॉलिंग के लिए

यदि आपको पूरे इंटरनेट से डेटा एकत्र करने की आवश्यकता है (जैसे खोज इंजन), तो Apache Nutch का उपयोग करें। यह एक वितरित क्रॉलर है, जो Hadoop के ऊपर काम करता है। यह पेटाबाइट डेटा को संसाधित कर सकता है, लिंक के माध्यम से नई पृष्ठों का स्वचालित रूप से पता लगाता है, क्रॉलिंग नीति का समर्थन करता है (robots.txt, sitemap.xml)।

Nutch को सेटअप करना अधिक कठिन है, लेकिन Common Crawl जैसे डेटासेट को एकत्र करने के लिए अनिवार्य है। प्रॉक्सी के साथ काम करने के लिए प्रॉक्सी-रोटेटर प्लगइन का उपयोग करें।

गति और लागत का अनुकूलन

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

प्रॉक्सी के प्रकारों को संयोजित करें

सभी कार्यों के लिए रेसिडेंशियल का उपयोग न करें। स्रोतों को तीन श्रेणियों में विभाजित करें:

  • बिना सुरक्षा: डेटा सेंटर प्रॉक्सी ($0.5-2/IP) - खुले API, साधारण वेबसाइटें, सरकारी डेटाबेस
  • मध्यम सुरक्षा: रेसिडेंशियल रोटेटिंग ($5-10/जीबी) - Cloudflare वाली समाचार वेबसाइटें, फोरम
  • उच्च सुरक्षा: रेसिडेंशियल स्टिकी सत्र ($10-15/जीबी) - सोशल मीडिया, मार्केटप्लेस

उदाहरण: आप 100 समाचार वेबसाइटों को पार्स कर रहे हैं। इनमें से 70 बिना Cloudflare के काम करती हैं - डेटा सेंटर का उपयोग करें। 30 सुरक्षा के साथ - रेसिडेंशियल। इससे प्रॉक्सी पर बजट में 60-70% की बचत होगी।

अनुरोधों को कैश करें

यदि आप एक वेबसाइट को कई बार पार्स कर रहे हैं (उदाहरण के लिए, दैनिक समाचार संग्रह), तो अपरिवर्तनीय पृष्ठों को कैश करें। HTML कैश के लिए Redis या स्थानीय संग्रहण का उपयोग करें।

import hashlib
import redis

cache = redis.Redis(host='localhost', port=6379)

def fetch_with_cache(url, proxies):
    # कैश की जांच करें
    cache_key = hashlib.md5(url.encode()).hexdigest()
    cached = cache.get(cache_key)
    
    if cached:
        return cached.decode('utf-8')
    
    # यदि कैश में नहीं है - अनुरोध करें
    response = requests.get(url, proxies=proxies)
    html = response.text
    
    # 24 घंटे के लिए कैश में सहेजें
    cache.setex(cache_key, 86400, html)
    return html

ट्रैफ़िक का अनुकूलन करें

रेसिडेंशियल प्रॉक्सी का उपयोग करते समय (जीबी के लिए भुगतान) ट्रैफ़िक की मात्रा को कम करना महत्वपूर्ण है:

  • यदि आवश्यक न हो तो चित्रों, CSS, फ़ॉन्टों को लोड करना बंद करें (Puppeteer में: page.setRequestInterception)
  • संपीड़न (gzip, brotli) का उपयोग करें - अधिकांश प्रॉक्सी इसका समर्थन करते हैं
  • केवल आवश्यक तत्वों को पार्स करें - यदि एक ब्लॉक की आवश्यकता है तो पूरे पृष्ठ को डाउनलोड न करें
  • API के लिए HTML के बजाय JSON का उपयोग करें (5-10 गुना कम ट्रैफ़िक)

समय के अनुसार लोड वितरित करें

कई वेबसाइटों में दिन के दौरान विभिन्न लोड होते हैं। रात के समय (वेबसाइट के सर्वर के समय के अनुसार) पार्स करें - रेट लिमिटिंग के तहत आने की संभावना कम होती है। सप्ताहांत के दिनों को भी ध्यान में रखें - शनिवार-रविवार को सुरक्षा कमजोर हो सकती है।

मैट्रिक्स की निगरानी करें

अनुकूलन के लिए प्रमुख संकेतकों की निगरानी करें:

मैट्रिक्स मानक अस्वीकृति पर क्या करें
सफलता दर >90% विलंब बढ़ाएँ, प्रॉक्सी का प्रकार बदलें
औसत गति प्रति श्रमिक 50-200 req/min अधिक श्रमिक या प्रॉक्सी जोड़ें
1000 रिकॉर्ड के लिए लागत $0.5-5 ट्रैफ़िक का अनुकूलन करें, डेटा सेंटर का उपयोग करें
डुप्लिकेट का प्रतिशत <5% डेडुप्लिकेशन में सुधार करें, क्रॉलिंग लॉजिक की जांच करें

निष्कर्ष

AI मॉडल के प्रशिक्षण के लिए डेटा संग्रह एक जटिल कार्य है, जिसमें प्रॉक्सी का सही चयन, रोटेशन का सेटअप, सुरक्षा को बायपास करना और लागत का अनुकूलन शामिल है। प्रमुख बिंदु:

  • सरल स्रोतों (API, बिना सुरक्षा वाली वेबसाइटें) के लिए डेटा सेंटर प्रॉक्सी का उपयोग करें - ये तेज और सस्ते हैं
  • सुरक्षित प्लेटफार्मों (सोशल मीडिया, मार्केटप्लेस, Cloudflare वाली वेबसाइटें) के लिए रेसिडेंशियल प्रॉक्सी अनिवार्य हैं
  • कार्य के आधार पर रोटेशन सेट करें: विभिन्न वेबसाइटों के बड़े पैमाने पर पार्सिंग के लिए अनुरोध के अनुसार, एक वेबसाइट के साथ काम करने के लिए स्टिकी सत्र
  • एंटी-बॉट सिस्टम को बायपास करने के लिए छिपाने वाले प्लगइन्स के साथ हेडलेस-ब्राउज़रों का उपयोग करें
  • कार्य कतारों और समानांतर श्रमिकों के साथ स्केलेबल आर्किटेक्चर बनाएं
  • खर्चों का अनुकूलन करें: प्रॉक्सी के प्रकारों को संयोजित करें, अनुरोधों को कैश करें, ट्रैफ़िक को कम करें

सही सेटअप के साथ, आप स्थिरता और आर्थिक रूप से टेराबाइट डेटा एकत्र कर सकते हैं। 10-20 स्रोतों पर एक छोटे पायलट प्रोजेक्ट से शुरू करें, प्रक्रिया को ठीक करें, फिर औद्योगिक मात्रा में स्केल करें।

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

```