# Kimlik doğrulamalı proxy ile Selenium: çalışan yerel bir yönlendirici

> Selenium'da kimlik doğrulamalı proxyler: Chrome’un proxy kimlik bilgilerini neden yok saydığı ve bunları ekleyen 40 satırlık Python yerel yönlendirici. KYC olmadan konut proxy.

- URL: https://crawlrelay.com/tr/docs/selenium/
- Son güncelleme: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Chrome proxy bayrağında parola için alan yoktur. 127.0.0.1 üzerindeki küçük bir yerel yönlendirici kimlik bilgilerini ekler, böylece Selenium sadece açık bir yerel proxy görür.

**Hızlı cevap — Selenium’da kullanıcı adı ve şifre ile proxy nasıl kullanılır?**

Kimlik bilgisi başlığını (`Proxy-Authorization`) ekleyen küçük bir yerel yönlendirici çalıştırın ve Chrome’u ona `--proxy-server=http://127.0.0.1:8899` ile yönlendirin. Chrome o bayraktaki kimlik bilgilerini yok sayar ve Selenium’un proxy şifreleri için taşınabilir seçeneği yoktur. **CrawlRelay** konut proxyleri `gw.crawlrelay.com:7777` üzerinde böyle çalışır, $0,50/GB’ten gelir. KYC olmadan ve kripto ile ödenir.

## Selenium kurulumu hızlı bakış

| Özellik | Değer |
| --- | --- |
| Neden yerel yönlendirici? | Chrome’un `--proxy-server` bayrağı kullanıcı adı veya şifre kabul etmez |
| Yönlendirici | `127.0.0.1:8899` üzerinde dinler, `Proxy-Authorization` ekler, `gw.crawlrelay.com:7777`’e iletir |
| Chrome seçeneği | `--proxy-server=http://127.0.0.1:8899` |
| Rotasyon | Her yeni CONNECT tüneli yeni bir bağlantıdır ve genellikle yeni çıkıştır; tek IP için bir oturum kimliği ekleyin |
| Daha basit alternatif | [Playwright](https://crawlrelay.com/tr/docs/playwright/) kullanıcı adı ve şifreyi doğrudan alır |

## Yerel yönlendirici nasıl çalışır?

Tarayıcının proxy isteğini kabul eder, kimlik bilgilerinizi içeren bir başlık ekler ve ardından her iki yönde baytları kopyalar. HTTPS sitesi için tarayıcı `CONNECT host:443` gönderir, gateway `200 Connection established` yanıtlar ve TLS Chrome ile web sitesi arasında uçtan uca çalışır. Yönlendirici sayfa içeriğini hiç açık metin olarak görmez.

Bu minimal versiyon HTTPS sitelerini yönetir, her bağlantı için bir CONNECT tüneli içerir. Bu, bugün neredeyse her web sitesini kapsar. Kimlik bilgilerinizin başka bir makine tarafından kullanılmaması için onu `127.0.0.1` ile sınırlandırın.

*forwarder.py (Python 3.8+, sadece standart kütüphane)*

```python
import asyncio
import base64
import os

UPSTREAM = ("gw.crawlrelay.com", 7777)
USER = os.environ.get("CRAWLRELAY_USER", "USERNAME-country-us")
PASSWORD = os.environ.get("CRAWLRELAY_PASSWORD", "PASSWORD")
AUTH = b"Proxy-Authorization: Basic " + base64.b64encode(("%s:%s" % (USER, PASSWORD)).encode())


async def pipe(reader, writer):
    try:
        while True:
            data = await reader.read(65536)
            if not data:
                break
            writer.write(data)
            await writer.drain()
    except ConnectionError:
        pass
    finally:
        writer.close()


async def handle(client_reader, client_writer):
    try:
        head = await client_reader.readuntil(b"\r\n\r\n")  # request line and headers from the browser
    except asyncio.IncompleteReadError:
        client_writer.close()
        return
    lines = head.split(b"\r\n")
    lines.insert(1, AUTH)  # add the credentials right after the request line
    up_reader, up_writer = await asyncio.open_connection(*UPSTREAM)
    up_writer.write(b"\r\n".join(lines))
    await up_writer.drain()
    await asyncio.gather(pipe(client_reader, up_writer), pipe(up_reader, client_writer))


async def main():
    server = await asyncio.start_server(handle, "127.0.0.1", 8899)
    async with server:
        await server.serve_forever()


if __name__ == "__main__":
    asyncio.run(main())
```

## Selenium'u yönlendiriciye nasıl bağlarım?

Bir terminalde `forwarder.py` başlatın, ardından Selenium betiğinizi yerel proxy adresiyle çalıştırın. Selenium 4.6 ve sonrası ile gelen Selenium Manager, eşleşen ChromeDriver'ı indirir, böylece başka bir şey yüklemenize gerek kalmaz.

*selenium_example.py*

```python
from selenium import webdriver
from selenium.webdriver.common.by import By

options = webdriver.ChromeOptions()
options.add_argument("--proxy-server=http://127.0.0.1:8899")  # the local forwarder
options.add_argument("--headless=new")

driver = webdriver.Chrome(options=options)
try:
    driver.set_page_load_timeout(60)
    driver.get("https://api.ipify.org")
    print("exit IP:", driver.find_element(By.TAG_NAME, "body").text)
finally:
    driver.quit()
```

## Her Selenium oturumu için bir IP veya sayfa başına yeni IP nasıl alırım?

Yönlendirici size verdiğiniz kullanıcı adını gönderir, bu nedenle oturum davranışı bu kullanıcı adına bağlıdır:

- **Bağlantı başına dönen:** oturum kısmını (`USERNAME-country-us`) çıkarın. Chrome sayfa başına birden fazla bağlantı açar, böylece tek bir sayfa birkaç farklı çıkış üzerinden yüklenebilir.
- **Her Selenium oturumu için tek IP:** başlatmadan önce `CRAWLRELAY_USER` değerini `USERNAME-country-us-session-run42-ttl-30` yapın. Her bağlantı aynı IP üzerinden 30 dakikaya kadar çıkar, IP daha erken de değişebilir.
- **Paralel birden fazla oturum:** her oturum için farklı yerel portlarda (örneğin 8899 ve 8900) bir yönlendirici çalıştırın ve her WebDriver’a kendi portunu verin.

## selenium-wire veya tarayıcı eklentileri nasıl?

selenium-wire, trafiği yakalayarak proxy kimlik doğrulaması ekleyen popüler bir paket, Ocak 2024’te yazarı tarafından arşivlendi ve güncelleme almıyor. Proxy'nin kimlik doğrulama isteğine yanıt veren bir tarayıcı eklentisi de çalışır, ancak her profil için paketlenip yüklenmelidir. Yukarıdaki yönlendirici bağımlılık içermez ve Selenium ile kullanılan herhangi bir tarayıcıyla uyumludur. Yeni projeler için, [Playwright](https://crawlrelay.com/tr/docs/playwright/) daha da basittir: proxy kullanıcı adı ve şifresini doğrudan alır.

## Selenium ve proxyler: sorular

### Neden Chrome, Selenium'da proxy için giriş penceresi gösteriyor?

Çünkü proxy kimlik bilgisi istedi ve Chrome’da yoktu: `--proxy-server` bayrağı yalnızca host ve port alır. Headless modda aynı sorun `ERR_TUNNEL_CONNECTION_FAILED` olarak ortaya çıkar. Kimlik bilgileri ekleyen yerel bir yönlendirici kullanın veya kullanıcı adı ve şifre kabul eden Playwright’a geçin.

### Yönlendirici kazımamı yavaşlatır mı?

Neredeyse hiç. İki yerel soket ile bir uzak soket arasında bayt kopyalar, hiçbir şeyi şifre çözmez. Bir sayfanın süresi konut çıkışına ve hedef siteye bağlıdır, aynı makinede çalışan yönlendiriciye değil.

### Selenium ile Chrome yerine Firefox kullanabilir miyim?

Evet. Firefox proxy tercihlerini `FirefoxOptions` aracılığıyla ayarlayın: `network.proxy.type` değerini 1 yapın, ve `network.proxy.http` ile `network.proxy.ssl`'ü 8899 portu ile `127.0.0.1` yapın. Yönlendiriciyi önde tutun: Firefox, Selenium’un güvenilir dolduramadığı bir diyalogda proxy kimlik bilgisi ister.

### Şifrem yönlendiricide güvende mi?

Yönlendirici örnekte olduğu gibi `127.0.0.1` dinlediği sürece şifreniz makinenizde kalır. Çevre değişkenlerinden okuyun, asla kod deposuna kaydetmeyin ve her kazıyıcı için trafik limiti olan ayrı bir alt kullanıcı kullanın, böylece sızan şifre tüm planınızı tüketemez.

**Selenium’a konut proxy çıkışı verin** $1,50 den 1 GB test için, $0,50/GB ise 50 GB’ten. [Fiyatları gör](https://crawlrelay.com/tr/pricing/) · [Playwright rehberi](https://crawlrelay.com/tr/docs/playwright/)

---

CrawlRelay: CrawlRelay, kazıyıcılar ve AI veri hatları için geliştirici odaklı dönen konut proxy ve 4G/5G mobil proxy hizmetidir: süresiz, kullanılan kadar ödenen trafik $0,50/GB'dan itibaren, kripto ile ödenir, kimlik yüklemesi yoktur. KYC yok — kimlik, selfie veya belge istemez. Kripto ile ödeyin.
