İçeriğe geç
Guides 5 dk okuma 1054 görüntülenme

Playwright Proxy Kurulumu

Python ve Node.js için Playwright proxy entegrasyonunu öğrenin. Bu rehber kurulum, yapılandırma ve sağlam web otomasyonu için en iyi uygulamaları kapsar.

Python Browser
Playwright Proxy Kurulumu

Playwright, Python ve Node.js betiklerinde proxy kurulumunu temel olarak browserType.launch() veya browser.newContext() seçenekleriyle sağlar; proxy sunucu adresi, port ve kimlik doğrulama bilgileri belirtilebilir. Bu yapılandırma, başlatılan tarayıcı örneğinden veya bağlamından çıkan tüm sonraki ağ isteklerini belirtilen proxy üzerinden yönlendirir.

Playwright proxy yapılandırmasına genel bakış

Playwright, proxy yapılandırmasını iki temel düzeyde destekler:

  1. Tarayıcı başlatma düzeyi: Proxy'yi tüm tarayıcı örneğine uygular. Bu tarayıcı içinde oluşturulan tüm bağlamlar ve sayfalar belirtilen proxy'yi kullanır. Tüm otomasyon görevleri aynı proxy'yi gerektirdiğinde uygundur.
  2. Tarayıcı bağlamı düzeyi: Proxy'yi belirli bir tarayıcı bağlamına uygular. Böylece aynı tarayıcı örneğindeki farklı bağlamlar farklı proxy'ler kullanabilir ya da bazı bağlamlar hiç proxy kullanmayabilir; bu, çeşitli scraping veya test senaryolarını yönetmek için faydalıdır.

Playwright'ın proxy yapılandırma nesnesi ya da sözlüğü tipik olarak server adresini (ör. http://proxy.example.com:8080, socks5://localhost:9050) ve isteğe bağlı olarak kimlik doğrulamalı proxy'ler için username ve password alanlarını içerir.

Desteklenen proxy türleri

Playwright standart proxy protokollerini destekler:

  • HTTP proxy'ler: http:// veya https:// şemalarıyla belirtilir.
  • SOCKS proxy'ler: socks5:// veya socks4:// şemalarıyla belirtilir.

Şema atlandığında (ör. proxy.example.com:8080) Playwright varsayılan olarak HTTP proxy kabul eder. Netlik için ve doğru protokolün kullanıldığından emin olmak için şemayı açıkça belirtmeniz önerilir.

Python'da Playwright proxy kurulumu

Python'da proxy yapılandırması, browser_type.launch() veya browser.new_context() fonksiyonunun proxy argümanına bir sözlük olarak geçirilir.

Temel HTTP/HTTPS proxy kurulumu

Kimlik doğrulaması olmayan bir HTTP veya HTTPS proxy kullanmak için:

from playwright.sync_api import sync_playwright

# For browser-wide proxy
with sync_playwright() as p:
    browser = p.chromium.launch(proxy={"server": "http://your.proxy.server:8080"})
    page = browser.new_page()
    page.goto("https://httpbin.org/ip")
    print(page.content())
    browser.close()

# For context-specific proxy
with sync_playwright() as p:
    browser = p.chromium.launch()
    context = browser.new_context(proxy={"server": "http://another.proxy.server:8080"})
    page = context.new_page()
    page.goto("https://httpbin.org/ip")
    print(page.content())
    context.close()
    browser.close()

Kimlik doğrulamalı HTTP/HTTPS proxy kurulumu

Kimlik doğrulaması gerektiren proxy'ler için proxy sözlüğüne username ve password anahtarlarını ekleyin:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(
        proxy={
            "server": "http://user.proxy.server:8080",
            "username": "proxy_user",
            "password": "proxy_password"
        }
    )
    page = browser.new_page()
    page.goto("https://httpbin.org/ip")
    print(page.content())
    browser.close()

SOCKS proxy kurulumu

SOCKS protokolünü server dizesinde belirtin:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(
        proxy={"server": "socks5://your.socks.proxy:9050"}
    )
    page = browser.new_page()
    page.goto("https://httpbin.org/ip")
    print(page.content())
    browser.close()

SOCKS proxy'ler de sözlüğe username ve password eklenerek kimlik doğrulamayı destekler.

Belirli alan adları için proxy'yi atlamak

Proxy sözlüğündeki bypass anahtarı, proxy kullanmaması gereken host veya alan adlarının virgülle ayrılmış listesini belirtmenizi sağlar. Joker karakterler (*) desteklenir.

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(
        proxy={
            "server": "http://your.proxy.server:8080",
            "bypass": "*.local, .example.com, 192.168.1.1"
        }
    )
    page = browser.new_page()
    page.goto("http://example.com") # example.com bypass listesindeyse proxy atlanır
    page.goto("https://google.com") # Proxy kullanılır
    browser.close()

Node.js'te Playwright proxy kurulumu

Node.js'te proxy yapılandırması, browserType.launch() veya browser.newContext() fonksiyonunun proxy özelliğine bir nesne olarak geçirilir.

Temel HTTP/HTTPS proxy kurulumu

Kimlik doğrulaması olmayan bir HTTP veya HTTPS proxy kullanmak için:

const { chromium } = require('playwright');

(async () => {
  // For browser-wide proxy
  const browser = await chromium.launch({
    proxy: {
      server: 'http://your.proxy.server:8080'
    }
  });
  const page = await browser.newPage();
  await page.goto('https://httpbin.org/ip');
  console.log(await page.content());
  await browser.close();

  // For context-specific proxy
  const browser2 = await chromium.launch();
  const context = await browser2.newContext({
    proxy: {
      server: 'http://another.proxy.server:8080'
    }
  });
  const page2 = await context.newPage();
  await page2.goto('https://httpbin.org/ip');
  console.log(await page2.content());
  await context.close();
  await browser2.close();
})();

Kimlik doğrulamalı HTTP/HTTPS proxy kurulumu

Kimlik doğrulaması gerektiren proxy'ler için proxy nesnesine username ve password özelliklerini ekleyin:

const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch({
    proxy: {
      server: 'http://user.proxy.server:8080',
      username: 'proxy_user',
      password: 'proxy_password'
    }
  });
  const page = await browser.newPage();
  await page.goto('https://httpbin.org/ip');
  console.log(await page.content());
  await browser.close();
})();

SOCKS proxy kurulumu

SOCKS protokolünü server dizesinde belirtin:

const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch({
    proxy: {
      server: 'socks5://your.socks.proxy:9050'
    }
  });
  const page = await browser.newPage();
  await page.goto('https://httpbin.org/ip');
  console.log(await page.content());
  await browser.close();
})();

SOCKS proxy'ler de nesneye username ve password eklenerek kimlik doğrulamayı destekler.

Belirli alan adları için proxy'yi atlamak

Proxy nesnesindeki bypass özelliği, proxy kullanmaması gereken host veya alan adlarının virgülle ayrılmış listesini belirtmenizi sağlar. Joker karakterler (*) desteklenir.

const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch({
    proxy: {
      server: 'http://your.proxy.server:8080',
      bypass: '*.local, .example.com, 192.168.1.1'
    }
  });
  const page = await browser.newPage();
  await page.goto('http://example.com'); // example.com bypass listesindeyse proxy atlanır
  await page.goto('https://google.com'); // Proxy kullanılır
  await browser.close();
})();

Playwright proxy yapılandırmalarının karşılaştırması

Özellik/Dil Python (dict) Node.js (object) Açıklama
Server {"server": "http://host:port"} { server: "http://host:port" } Zorunlu. Proxy adresi ve portu, şema isteğe bağlı.
Username {"username": "user"} { username: "user" } İsteğe bağlı. Kimlik doğrulamalı proxy'ler için.
Password {"password": "pass"} { password: "pass" } İsteğe bağlı. Kimlik doğrulamalı proxy'ler için.
Bypass {"bypass": "*.local,domain.com"} { bypass: "*.local,domain.com" } İsteğe bağlı. Proxy'yi atlayacak host/alan adlarının virgülle ayrılmış listesi.
Launch Level browser_type.launch(proxy={...}) browserType.launch({ proxy: {...} }) Proxy'yi tüm tarayıcı örneğine uygular.
Context Level browser.new_context(proxy={...}) browser.newContext({ proxy: {...} }) Proxy'yi belirli bir tarayıcı bağlamına uygular.

İleri düzey proxy değerlendirmeleri

page.route() ile belirli istekleri proxy'lemek

Çok ince ayarlı kontrol için page.route(), ağ isteklerini yakalayıp belirli ölçütlere göre farklı proxy'lere yönlendirebilir. Bu yöntem, genel veya bağlam düzeyindeki proxy ayarlarından daha fazla esneklik sunar ancak isteklerin manuel olarak ele alınmasını gerektirir.

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()

    def handle_route(route):
        if "example.com" in route.request.url:
            route.fulfill(status=200, body="Blocked by route handler.")
        else:
            # Diğer istekleri belirli bir proxy üzerinden ilet
            # Bu, manuel HTTP istemcisi kurulumu gerektirir; doğrudan proxy'leme için karmaşık olabilir
            # Basit kullanım senaryolarında genel/bağlam proxy'si tercih edilir.
            # Karmaşık proxy yönlendirmesi için harici bir proxy yöneticisi kullanmayı düşünün.
            route.continue_({"url": route.request.url}) # Örnek: değişiklik yapmadan devam et

    page.route("**/*", handle_route)
    page.goto("https://www.google.com") # Yönlendirilecek
    page.goto("https://www.example.com") # Handler tarafından yanıtlanacak
    browser.close()

page.route() genellikle mocking, istekleri değiştirme veya engelleme için kullanılır; özel bir proxy yönetim mantığıyla birleştirilmedikçe farklı proxy'lere dinamik yönlendirme için uygun değildir.

Proxy'nin çalıştığını doğrulamak

Bir proxy yapılandırdıktan sonra, https://httpbin.org/ip veya https://httpbin.org/ip gibi bir IP adresi kontrol servisine giderek çalışmasını doğrulayın. Görüntülenen IP adresi yerel makineye değil, proxy sunucusuna karşılık gelmelidir.

Proxy hatalarını ve zaman aşımlarını ele almak

Proxy'ler ek arıza noktaları getirir. Proxy kullanırken ağ istekleri için sağlam bir hata yönetimi uygulayın. Bu şunları içerir:

  • Yeniden denemeler: Proxy bağlantısı başarısız olduğunda veya zaman aşımına uğradığında isteği yeniden denemek.
  • Zaman aşımları: Playwright işlemleri için uygun ağ zaman aşımlarını yapılandırmak.
  • Proxy rotasyonu: Büyük ölçekli işlemlerde, hız sınırlamasını, IP yasaklarını veya tek proxy arızalarını azaltmak için bir proxy havuzu üzerinde rotasyon yapın. Bu genellikle bir proxy listesini yönetmeyi ve yeni bağlamlar ya da yeniden denemeler için proxy yapılandırmasını dinamik olarak güncellemeyi gerektirir.

Güvenlik değerlendirmeleri

Kimlik doğrulamalı proxy kullanırken kimlik bilgilerini doğrudan kaynak koda gömmekten kaçının. Bunun yerine username ve password değerlerini almak için ortam değişkenlerini veya güvenli bir yapılandırma yönetim sistemini kullanın. Bu, kimlik bilgilerinin sızmasını önler ve farklı ortamlar arasında kimlik bilgisi yönetimini kolaylaştırır.

Güncellendi: 03.03.2026
Kategoriye dön

Bunları da okuyun

Guides 2 dk

Nike SNKRS için Proxy: Sınırlı Sürümler ve Çoklu Katılım

Nike SNKRS'ta birden fazla hesapla çekilişlere katılmak, IP limitlerini aşmak ve ban yemeden sınırlı sürümleri kapmak için residential veya mobil proxy kullanın. Hangi türü seçmeli ve nasıl kurmalı.

Guides 2 dk

iPhone'da Proxy Nasıl Kurulur (Wi-Fi ve SOCKS5)

iPhone'da proxy'yi yerleşik Wi-Fi ayarlarından (HTTP/HTTPS) veya SOCKS5 ile hücresel kapsama için Shadowrocket gibi bir uygulamayla kurun. Adım adım iOS kurulumu ve bilinmesi gereken kısıtlar.

Guides 3 dk

Tinder için proxy: çoklu hesap ve ban'lerden kaçınma

Birden fazla profil işletmek ve IP shadowban'lerinden kaçınmak için Tinder'da mobil veya residential proxy kullanın. Mobilin neden kazandığı, kurulumu ve proxy'nin şehri neden değiştirmediği.

Guides 2 dk

StockX için proxy: fiyat takibi ve hesap yönetimi

StockX'te fiyatları izlemek, birden fazla hesap çalıştırmak ve drop'ları yasaklanmadan kapmak için residential, ISP veya mobil proxy kullanın. Hangi türü seçeceğinizi ve nasıl kuracağınızı anlatıyoruz.

Guides 3 dk

OpenAI API için Proxy: Erişim, Hız Limitleri ve Kurulum

OpenAI API'yi residential veya ISP proxy üzerinden yönlendirerek desteklenen bölgelere erişin, 429 hız limitlerinden kaçının ve hesapları izole edin. Hangi proxy'yi seçmeli ve Python kurulum örnekleri.

Guides 1 dk

E2E testleri için Cypress'te proxy kurulumu

Cypress'te proxy kurulumu: HTTP_PROXY değişkenleri, cy-proxy-middleware ve coğrafi konuma bağlı içeriğin test edilmesi.

Proxy'lerimizi deneyin

100+ ülkede 20,000+ proxy

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.