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

Selenium जावा में स्केलेबल वेब स्क्रैपिंग के लिए प्रॉक्सी कैसे सेट करें

Michael Lee
Michael Lee

Expert Network Defense Engineer

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

Scrapeless Proxies के साथ अपने ऑटोमेशन और स्क्रैपिंग को बढ़ावा दें - तेज, विश्वसनीय और किफायती।

Selenium Java प्रोजेक्ट्स में प्रॉक्सी एकीकृत करना किसी भी गंभीर वेब स्क्रैपिंग या ऑटोमेशन कार्य के लिए एक बुनियादी आवश्यकता है। प्रॉक्सी आपको अपने असली IP पते को छुपाने, भू-प्रतिबंधों को दरकिनार करने और आपकी अनुरोधों को वितरित करने की अनुमति देती हैं ताकि दर सीमाओं और IP बैन से बचा जा सके। यह मार्गदर्शिका Java का उपयोग करके Selenium WebDriver में प्रॉक्सी को कॉन्फ़िगर करने का मानक और सबसे प्रभावशाली तरीका पर ध्यान केंद्रित करती है।

ChromeOptions का उपयोग करके प्रॉक्सी कॉन्फ़िगर करना

Selenium Java में प्रॉक्सी सेट करने का सबसे सामान्य और विश्वसनीय तरीका WebDriver को प्रारंभ करने से पहले ब्राउज़र के विकल्पों को कॉन्फ़िगर करना है। इसमें एक Proxy ऑब्जेक्ट बनाना और इसे ChromeOptions (या Firefox जैसे अन्य ब्राउज़रों के लिए समान) को पास करना शामिल है।

Proxy ऑब्जेक्ट HTTP और SSL ट्रैफ़िक के लिए प्रॉक्सी सर्वर पते को परिभाषित करने के लिए उपयोग किया जाता है।

java Copy
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import io.github.bonigarcia.wdm.WebDriverManager;

public class Scraper {
    public static void main(String[] args) {
        // 1. WebDriver सेटअप (सुविधा के लिए WebDriverManager का उपयोग करना)
        WebDriverManager.chromedriver().setup();

        // 2. प्रॉक्सी विवरण परिभाषित करें (IP:PORT)
        String proxyAddress = "184.169.154.119:80";

        // 3. एक Proxy ऑब्जेक्ट बनाएं और HTTP और SSL प्रॉक्सी सेट करें
        Proxy proxy = new Proxy();
        proxy.setHttpProxy(proxyAddress);
        proxy.setSslProxy(proxyAddress);

        // 4. ChromeOptions इंस्टेंस बनाएं और प्रॉक्सी विकल्प सेट करें
        ChromeOptions options = new ChromeOptions();
        options.setProxy(proxy);
        options.addArguments("--headless=new"); // वैकल्पिक: हेडलेस मोड में चलाएं

        // 5. कॉन्फ़िगर किए गए विकल्पों के साथ ड्राइवर इंस्टेंस बनाएँ
        WebDriver driver = new ChromeDriver(options);

        // 6. एक परीक्षण URL पर जाएँ
        driver.get("https://httpbin.io/ip");
        
        // ... आपके स्क्रैपिंग लॉजिक का बाकी
        driver.quit();
    }
}

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

विशाल पैमाने पर स्क्रैपिंग के लिए, आपको अपने IP पते को घुमाना होगा ताकि आपके अनुरोधों को बॉट ट्रैफ़िक के रूप में चिह्नित किया जा सके। Java में, यह प्रॉक्सी की एक सूची बनाए रखकर और प्रत्येक नए WebDriver सत्र के लिए एक को यादृच्छिक रूप से चुनकर प्राप्त किया जाता है। यह दृष्टिकोण लोड को वितरित करने और कम प्रोफ़ाइल बनाए रखने के लिए अत्यधिक प्रभावशाली है।

java Copy
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
// ... अन्य आयात

public class RotatingScraper {
    public static void main(String[] args) {
        // ... WebDriver सेटअप

        // 1. प्रॉक्सी पते की एक सूची परिभाषित करें (IP:PORT)
        List<String> proxyList = new ArrayList<>();
        proxyList.add("190.61.88.147:8080");
        proxyList.add("13.231.166.96:80");
        proxyList.add("35.213.91.45:80");

        // 2. सत्र के लिए एक प्रॉक्सी यादृच्छिक रूप से चुनें
        Random rand = new Random();
        String proxyAddress = proxyList.get(rand.nextInt(proxyList.size()));

        // 3. यादृच्छिक रूप से चयनित पते के साथ Proxy ऑब्जेक्ट को कॉन्फ़िगर करें
        Proxy proxy = new Proxy();
        proxy.setHttpProxy(proxyAddress);
        proxy.setSslProxy(proxyAddress);

        // 4. ChromeOptions में प्रॉक्सी विकल्प सेट करें
        ChromeOptions options = new ChromeOptions();
        options.setProxy(proxy);
        // ... अन्य विकल्प

        // 5. ड्राइवर इंस्टेंस बनाएँ
        WebDriver driver = new ChromeDriver(options);
        // ... स्क्रैपिंग लॉजिक
    }
}

प्रमाणित प्रॉक्सियों को संभालना

प्रीमियम प्रॉक्सियों के लिए जिन्हें उपयोगकर्ता नाम और पासवर्ड की आवश्यकता होती है, मानक Proxy ऑब्जेक्ट अकेला अपर्याप्त है। Selenium ब्राउज़र में दिखाई देने वाले प्रमाणीकरण पॉप-अप को स्वाभाविक रूप से संभालता नहीं है। सबसे सामान्य विकल्पों में शामिल हैं:

  1. एक प्रॉक्सी एक्सटेंशन का उपयोग करना: एक ब्राउज़र एक्सटेंशन का उपयोग करना जो प्रॉक्सी प्रमाणीकरण को हैंडल करता है और प्रमाण पत्रों को पूर्व-कॉन्फ़िगर करता है।
  2. एक प्रॉक्सी प्रबंधक का उपयोग करना: एक प्रॉक्सी प्रबंधक या गेटवे (जैसे Scrapeless द्वारा प्रदान की गई) का उपयोग करना जो सर्वर साइड पर प्रमाणीकरण को संभालता है, जिससे आप सरल IP:PORT एंडपॉइंट का उपयोग करके कनेक्ट कर सकें।

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

प्रोफेशनल जावा-आधारित वेब scraping के लिए, आपके प्रोवी नेटवर्क की गुणवत्ता बेहद महत्वपूर्ण है। Scrapeless Proxies को बड़े पैमाने पर Selenium परिचालन के लिए आवश्यक गति, विश्वसनीयता और गुमनामी प्रदान करने के लिए बनाया गया है।

Scrapeless के Residential Proxies को Selenium जावा परियोजनाओं के लिए अत्यधिक अनुशंसित किया जाता है, क्योंकि ये वास्तविक आईपी पतों की पेशकश करते हैं जो विकसित एंटी-बॉट सिस्टम द्वारा पहचानने और ब्लॉक किए जाने की संभावना बहुत कम होती है। इसके अलावा, उनके Static ISP Proxies आवासीय विश्वास और स्थिर गति के बीच एक सही संतुलन प्रदान करते हैं, जो एक स्थिर scraping वातावरण बनाए रखने के लिए आदर्श है। Scrapeless जैसी सेवा का उपयोग करके, आप सुनिश्चित कर सकते हैं कि आपका scraping browser हमेशा एक स्वच्छ, उच्च-प्रतिष्ठा आईपी के साथ संचालन कर रहा है।

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

प्रश्न: क्या मैं Selenium के लिए प्रॉक्सी सेट करने के लिए जावा सिस्टम प्रॉपर्टीज़ का उपयोग कर सकता हूँ?
उत्तर: जबकि आप सिस्टम प्रॉपर्टीज़ जैसे System.setProperty("http.proxyHost", "...") सेट कर सकते हैं, यह केवल अंतर्निहित जावा नेटवर्क स्टैक को प्रभावित करता है और नहीं Selenium द्वारा नियंत्रित ब्राउज़र को। आपको ब्राउज़र के नेटवर्क सेटिंग्स को कॉन्फ़िगर करने के लिए ChromeOptions के साथ Proxy ऑब्जेक्ट का उपयोग करना होगा।

प्रश्न: Proxy ऑब्जेक्ट में HTTP और SSL प्रॉक्सी सेटिंग्स के बीच क्या अंतर है?
उत्तर: setHttpProxy() विधि मानक HTTP ट्रैफ़िक के लिए प्रॉक्सी को कॉन्फ़िगर करती है, जबकि setSslProxy() इसे सुरक्षित HTTPS (SSL/TLS) ट्रैफ़िक के लिए कॉन्फ़िगर करती है। सबसे अच्छी प्रथा है कि सभी ट्रैफ़िक को सही तरीके से रूट करने के लिए दोनों को समान प्रॉक्सी एड्रेस पर सेट करना।

प्रश्न: क्या प्रमाणीकरण के लिए प्रॉक्सी एक्सटेंशन या प्रॉक्सी प्रबंधक का उपयोग करना बेहतर है?
उत्तर: बड़े पैमाने पर, उत्पादन स्तर के scraping के लिए आमतौर पर प्रॉक्सी प्रबंधक या गेटवे पसंद किया जाता है। यह आपके Selenium कोड के बाहर प्रमाणीकरण और रोटेशन लॉजिक को केंद्रीकृत करता है, जिससे आपका scraping स्क्रिप्ट साफ और परिवर्तनों के प्रति अधिक मजबूत हो जाता है।


संदर्भ

[1] GNU Wget Manual: Wgetrc File
[2] GeeksforGeeks: Web Scraping using Wget
[3] Selenium Documentation: Installing Libraries
[4] Oracle Java Networking and Proxies
[5] Baeldung: Selenium with Proxy in Java
[6] W3C Working Draft: Proxy Requirements
[7] Scrapeless Wiki: What is Headless Browser
[8] Scrapeless Wiki: Best Web Scraping Services
[9] Scrapeless Wiki: Web Scraping with LXML
[10] Scrapeless Wiki: Recommended Free Automated Data Collection Tools
[11] Scrapeless Wiki: Scrapeless Browser Full Guide

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

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

सूची