İçeriğe geç
Guides 3 dk okuma 1256 görüntülenme

Python'da Playwright ile proxy kullanımı

Python için Playwright'ta proxy yapılandırması: HTTP ve SOCKS5 proxy'ler, kimlik doğrulama, tarayıcı context'leri ve anti-bot atlatma.

Python'da Playwright ile proxy kullanımı

Python'da Playwright ile proxy kullanımı

Playwright ve proxy'ler

Playwright, Microsoft'un Chromium, Firefox ve WebKit'i destekleyen tarayıcı otomasyon framework'üdür. Playwright'ın Python sürümü, hem tarayıcı düzeyinde hem de ayrı context'ler için yerleşik proxy desteğine sahiptir.

Kurulum

pip install playwright
playwright install  # tarayıcıları indirir

Temel proxy yapılandırması

HTTP proxy

from playwright.sync_api import sync_playwright

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

Kimlik doğrulamalı

from playwright.sync_api import sync_playwright

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

SOCKS5 proxy

browser = p.chromium.launch(
    proxy={"server": "socks5://proxy_ip:port"}
)

Asenkron mod

import asyncio
from playwright.async_api import async_playwright

async def main():
    async with async_playwright() as p:
        browser = await p.chromium.launch(
            proxy={
                "server": "http://proxy_ip:port",
                "username": "user",
                "password": "pass"
            }
        )
        page = await browser.new_page()
        await page.goto("https://httpbin.org/ip")
        content = await page.content()
        print(content)
        await browser.close()

asyncio.run(main())

Context düzeyinde proxy'ler

Playwright, tek bir tarayıcı içinde farklı context'ler (profiller) için farklı proxy'ler tanımlamanıza izin verir:

from playwright.sync_api import sync_playwright

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

    # Context 1 — ABD proxy'si
    context1 = browser.new_context(
        proxy={
            "server": "http://us_proxy:port",
            "username": "user",
            "password": "pass"
        }
    )

    # Context 2 — Almanya proxy'si
    context2 = browser.new_context(
        proxy={
            "server": "http://de_proxy:port",
            "username": "user",
            "password": "pass"
        }
    )

    page1 = context1.new_page()
    page2 = context2.new_page()

    page1.goto("https://httpbin.org/ip")
    page2.goto("https://httpbin.org/ip")

    print("US:", page1.content())
    print("DE:", page2.content())

    browser.close()

Bu güçlü bir özelliktir: tek tarayıcı, farklı proxy ve fingerprint'lere sahip birden çok context.

Belirli alan adları için proxy'yi atlama

browser = p.chromium.launch(
    proxy={
        "server": "http://proxy_ip:port",
        "bypass": "localhost,*.local,example.com"
    }
)

Bypass listesindeki alan adlarına proxy kullanılmadan doğrudan erişilir.

Headless ve headed modlar

# Headless (GUI olmadan) — scraping için
browser = p.chromium.launch(headless=True, proxy={"server": "http://proxy:port"})

# Headed (GUI ile) — hata ayıklama için
browser = p.chromium.launch(headless=False, proxy={"server": "http://proxy:port"})

Farklı tarayıcılarla çalışma

Playwright üç engine destekler:

# Chromium
browser = p.chromium.launch(proxy=proxy_config)

# Firefox
browser = p.firefox.launch(proxy=proxy_config)

# WebKit (Safari)
browser = p.webkit.launch(proxy=proxy_config)

Üçü de proxy'leri aynı şekilde destekler.

Stealth mode ve anti-bot atlatma

Playwright, anti-bot sistemleri tarafından tespit edilir. Bunu aşmak için:

playwright-stealth

pip install playwright-stealth
from playwright.sync_api import sync_playwright
from playwright_stealth import stealth_sync

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={"server": "http://proxy:port"})
    page = browser.new_page()
    stealth_sync(page)  # stealth yamalarını uygular
    page.goto("https://target-site.com")

Atlatma önerileri

  1. Residential veya mobil proxy'ler kullanın
  2. Gerçekçi bir User-Agent ayarlayın
  3. Viewport boyutunu yapılandırın
  4. Eylemler arasına gecikmeler ekleyin
  5. Fare hareketlerini ve kaydırmayı taklit edin

Proxy üzerinden ekran görüntüsü ve PDF

page.goto("https://example.com")
page.screenshot(path="screenshot.png", full_page=True)
page.pdf(path="page.pdf")

İstekleri yakalama

def handle_route(route):
    # İstekleri değiştirme
    headers = route.request.headers
    headers["X-Custom-Header"] = "value"
    route.continue_(headers=headers)

page.route("**/*", handle_route)
page.goto("https://example.com")

Pratik örnek: rotasyonlu scraping

import asyncio
from playwright.async_api import async_playwright
import random

PROXIES = [
    {"server": "http://proxy1:port", "username": "u", "password": "p"},
    {"server": "http://proxy2:port", "username": "u", "password": "p"},
    {"server": "http://proxy3:port", "username": "u", "password": "p"},
]

async def scrape_page(playwright, url):
    proxy = random.choice(PROXIES)
    browser = await playwright.chromium.launch(proxy=proxy)
    page = await browser.new_page()
    try:
        await page.goto(url, timeout=30000)
        title = await page.title()
        return title
    except Exception as e:
        return f"Error: {e}"
    finally:
        await browser.close()

async def main():
    urls = [f"https://example.com/page/{i}" for i in range(10)]
    async with async_playwright() as p:
        tasks = [scrape_page(p, url) for url in urls]
        results = await asyncio.gather(*tasks)
        for url, result in zip(urls, results):
            print(f"{url}: {result}")

asyncio.run(main())

Sonuç

Playwright, Python'da proxy'lerle çalışmak için güçlü bir araçtır. Context düzeyindeki proxy desteği, tek bir tarayıcı içinde farklı IP'lerle birden fazla oturum çalıştırmanıza olanak tanır. Stealth yamaları ve residential proxy'ler ile birlikte kullanıldığında Playwright, korumalı sitelerin scraping'i için etkilidir.

Güncellendi: 06.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.