ProxynetProxynet

Selenium با پروکسی: راه‌اندازی در Python و Java

تاریخ انتشار:

2 دقیقه مطالعه

PXNET
نویسنده: PXNET
Selenium با پروکسی

Selenium مرورگرها را به‌صورت خودکار کنترل می‌کند. بیشتر برای آزمودن برنامه‌های وب به کار می‌رود، اما برای هر کاری که کسی به‌صورت دستی در مرورگر انجام می‌دهد هم مناسب است. در این نوشته می‌بینید که پروکسی‌های Proxynet را چطور در آن به کار ببرید.

Selenium چیست؟

Selenium رابطی فراهم می‌کند که با آن یک برنامه، مرورگر را می‌گرداند: پنجره باز می‌کند، صفحه بار می‌کند، کلیک می‌کند، متن می‌نویسد، فرم می‌فرستد و محتوای صفحه را می‌خواند.

از مرورگرهای رایج پشتیبانی می‌کند — Chrome و Firefox و Safari و Edge — و از راه مؤلفه Selenium WebDriver با آن‌ها حرف می‌زند. می‌توان آن را از Python و Java و C# و Ruby و زبان‌های دیگر به کار برد.

راه‌اندازی

گام 1: نصب Selenium. با Python نصب‌شده:

bash
pip install selenium

گام 2: تهیه پروکسی. سرویس مناسب خود را از صفحه اصلی Proxynet انتخاب کنید.

گام 3: آماده کردن درایور. از Selenium 4.6 به بعد، Selenium Manager خودش درایور مناسب را دانلود می‌کند؛ نصب دستی ChromeDriver فقط در نسخه‌های قدیمی‌تر لازم است.

گام 4: معرفی پروکسی. در Python:

python
from selenium import webdriver

PROXY_HOST = "pr.proxynet.io"
PROXY_PORT = 8000

options = webdriver.ChromeOptions()
options.add_argument(f"--proxy-server=http://{PROXY_HOST}:{PROXY_PORT}")

driver = webdriver.Chrome(options=options)
driver.get("https://ipinfo.io/json")
print(driver.find_element("tag name", "body").text)
driver.quit()

به جای PROXY_HOST و PROXY_PORT نام میزبان و پورتی را که در پنل Proxynet دارید بگذارید.

همین کار در Java

java
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class SeleniumProxyExample {
    public static void main(String[] args) {
        String proxyHost = "pr.proxynet.io";
        int proxyPort = 8000;

        // proxy for HTTP and HTTPS
        Proxy proxy = new Proxy();
        proxy.setHttpProxy(proxyHost + ":" + proxyPort);
        proxy.setSslProxy(proxyHost + ":" + proxyPort);

        ChromeOptions options = new ChromeOptions();
        options.setProxy(proxy);

        WebDriver driver = new ChromeDriver(options);
        driver.get("https://ipinfo.io/json");
        System.out.println(driver.getPageSource());
        driver.quit();
    }
}

اینجا هم همان هشدار بالا برقرار است: نام کاربری و رمز در آدرس پروکسی نوشته نمی‌شود. به‌جایش با یک IP مجاز کار کنید.

کدام نوع پروکسی؟

در اتوماسیون، خاستگاه آدرس نرخ موفقیت را تعیین می‌کند: پروکسی مسکونی برای مقصدهایی با بررسی سخت‌گیرانه و پروکسی دیتاسنتر برای برداشت‌های سریع از سایت‌های کم‌حساسیت. اگر باید یک نشست را در چند مرحله نگه دارید، پروکسی ISP بگیرید تا آدرس در میانه راه عوض نشود.

پرسش از ChatGPTپرسش از Claude