---
title: "پروکسی با SeleniumBase: احراز هویت و چرخش"
description: "SeleniumBase پروکسی همراه با نام کاربری و رمز را می‌پذیرد؛ کاری که Selenium به‌تنهایی نمی‌تواند. راه‌اندازی، آزمایش و یک چرخش ساده."
url: https://proxynet.io/fa/blog/how-to-use-proxy-with-seleniumbase
date: 2025-02-13
author: "Acar Diveroli"
category: "یکپارچه‌سازی, آموزش‌ها, مبانی پروکسی"
lang: fa
---

# پروکسی با SeleniumBase: احراز هویت و چرخش

SeleniumBase چارچوبی برای آزمون است که روی Selenium ساخته شده و پروکسی را **همراه با اطلاعات ورود** می‌پذیرد. همین کاری است که Selenium به‌تنهایی از پس آن برنمی‌آید، و به همین دلیل این دور زدن در هر کار اسکرپینگ ارزش دارد.

## مشکل پروکسی در Selenium

Selenium می‌تواند پروکسی تعیین کند، اما نمی‌تواند به آن وارد شود: Chrome نام کاربری و رمز را در آرگومان `--proxy-server` نادیده می‌گیرد و به‌جایش پنجره ورودی باز می‌کند که WebDriver نمی‌تواند پرش کند. ابزاری که پیش‌تر این شکاف را پر می‌کرد، یعنی SeleniumWire، مدت‌هاست نگهداری نمی‌شود و دیگر پیشنهاد نمی‌شود.

## گام‌های نخست

### نصب

```bash
pip install seleniumbase
```

### یک مورد آزمون

آزمون زیر اطلاعات JSON سرویس IPinfo را می‌گیرد و در کنسول می‌نویسد؛ این‌طور بی‌درنگ می‌بینید چه آدرسی به بیرون دیده می‌شود.

```python
from seleniumbase import BaseCase
from selenium.webdriver.common.by import By
import json

class ProxyTest(BaseCase):
    def test_proxy(self):
        # open the page
        self.driver.get("https://ipinfo.io/json")

        # read the JSON response
        location_info = json.loads(self.driver.find_element(By.TAG_NAME, "body").text)

        # print the contents
        for k, v in location_info.items():
            print(f"{k}: {v}")
```

## اجرای آزمون

اجرا با pytest انجام می‌شود.

### بدون پروکسی

```bash
pytest proxy_test.py -s
```

در کنسول IP و موقعیت خودتان نمایش داده می‌شود.

### با پروکسی

```bash
pytest proxy_test.py --proxy=USERNAME:PASSWORD@pr.proxynet.io:8000 -s
```

نام کاربری، رمز، نام میزبان و پورت در پنل Proxynet شما هست. خروجی چیزی شبیه این می‌شود:

```
=================================== test session starts ===================================
platform linux -- Python 3.10.12, pytest-8.3.4, pluggy-1.5.0
plugins: seleniumbase-4.34.6, rerunfailures-15.0, xdist-3.6.1
collected 1 item

proxy_test.py ip: 144.202.4.246
hostname: 144-202-4-246.pxnet.io
city: Piscataway
region: New Jersey
country: US
timezone: America/New_York
.

==================================== 1 passed in 3.25s ====================================
```

آدرس عوض شده و هیچ پنجره ورودی هم باز نشده است؛ هدف همین بود.

### چرخاندن پروکسی‌ها

با همان امکانات پایه Python می‌توانید یک چرخش ساده بسازید. اسکریپت زیر همان آزمون را برای هر کشور یک بار اجرا می‌کند:

```python
import subprocess

USER = "USERNAME"
PASSWORD = "PASSWORD"

# countries the request should come from
countries = ["us", "de", "gb", "tr"]

for country in countries:
    # with Proxynet the target country goes inside the username
    proxy = f"{USER}-country-{country}:{PASSWORD}@pr.proxynet.io:8000"
    subprocess.run(f"pytest proxy_test.py --proxy={proxy} -s", shell=True)
```

شکل دقیق نوشتن کشور مقصد در پنل شما آمده و بسته به محصول فرق می‌کند. اینکه همین کار را به‌جای خط فرمان داخل خود اسکریپت چطور انجام دهید، در نوشته [چرخاندن پروکسی در Python](/fa/blog/how-to-rotate-proxies-in-python) توضیح داده‌ایم.

## جمع‌بندی

با SeleniumBase یک آزمون Selenium از مسیر پروکسی با احراز هویت می‌رود، موقعیت دیده‌شده را بررسی می‌کند و آن را میان اجراها عوض می‌کند؛ سه کاری که با Selenium تنها به‌مراتب دشوارتر است.

کدام [محصولات پروکسی](/fa/proxy) ما برای این کار مناسب‌اند:

- [پروکسی مسکونی](https://proxynet.io/fa/residential-proxy)
- [پروکسی ISP](https://proxynet.io/fa/static-isp-residential-proxy)
- [پروکسی موبایل](https://proxynet.io/fa/mobile-proxy)
- [پروکسی دیتاسنتر](https://proxynet.io/fa/datacenter-proxy)
