İçeriğe geç

GProxy + Python requests — eksiksiz 2026 entegrasyon rehberi

TL;DR

GProxy residential, veri merkezi veya IPv6 proxy'lerini Python requests kütüphanesiyle 4 satır kodda kullanın. Bu rehber HTTP/SOCKS5 kimlik doğrulamasını, oturum yeniden kullanımını, rotasyonu, hata yönetimini ve sık yapılan hataları kopyala-yapıştır örneklerle kapsıyor.

Dil: Python Sürüm: 2.31+

Ön koşullar

  • Python 3.7 veya daha yenisi
  • requests kütüphanesi kurulu olmalı (pip install requests)
  • SOCKS5 için: requests[socks] (pip install requests[socks])
  • Etkin kimlik bilgilerine sahip GProxy hesabı (residential, veri merkezi veya IPv6)

Adım adım kurulum

1

Bağımlılıkları kurun

requests kütüphanesini kurun. SOCKS5 proxy kullanmayı planlıyorsanız socks ekini de kurun.

pip install requests
pip install requests[socks]  # SOCKS5 desteği için
2

GProxy kimlik bilgilerinizi alın

GProxy panelinize giriş yapın ve ilgili ürün sayfasından (Residential / Premium Datacenter / IPv6) proxy ana bilgisayarını, portu, kullanıcı adını ve parolayı kopyalayın.

3

HTTP proxy'yi kimlik doğrulamayla kullanın

En basit biçim. requests'e bir proxies sözlüğü geçirin. GProxy, URL içinde Basic Auth kullanır.

import requests

proxies = {
    'http':  'http://USERNAME:[email protected]:8080',
    'https': 'http://USERNAME:[email protected]:8080',
}

r = requests.get('https://api.ipify.org?format=json', proxies=proxies, timeout=15)
print(r.json())
# {'ip': '<your-proxy-egress-ip>'}
4

SOCKS5 proxy kullanın

SOCKS5 için URL'nin başına socks5h:// ekleyin (h, DNS çözümlemesinin proxy tarafında yapıldığı anlamına gelir — anonimlik için önemlidir).

import requests

proxies = {
    'http':  'socks5h://USERNAME:[email protected]:1080',
    'https': 'socks5h://USERNAME:[email protected]:1080',
}

r = requests.get('https://api.ipify.org?format=json', proxies=proxies, timeout=15)
print(r.json())
5

Birden çok istek için oturumu yeniden kullanın

Aynı proxy üzerinden birden çok istek için (ve keep-alive bağlantılarını korumak için) Session kullanın. Bu, her seferinde yeni bir istek oluşturmaktan çok daha hızlıdır.

import requests

session = requests.Session()
session.proxies = {
    'http':  'http://USERNAME:[email protected]:8080',
    'https': 'http://USERNAME:[email protected]:8080',
}

for url in ['https://example.com/page1', 'https://example.com/page2']:
    r = session.get(url, timeout=15)
    print(r.status_code, len(r.content))
6

Her istekte proxy'yi değiştirin

Rotasyonlu residential veya IPv6 proxy'lerde her yeni bağlantı havuzdan taze bir IP alır. Bir liste kullanıp rastgele veya sırayla (round-robin) seçin.

import random
import requests

PROXIES = [
    'http://USERNAME:[email protected]:8001',
    'http://USERNAME:[email protected]:8002',
    'http://USERNAME:[email protected]:8003',
]

def fetch(url):
    proxy_url = random.choice(PROXIES)
    return requests.get(url, proxies={'http': proxy_url, 'https': proxy_url}, timeout=15)

for _ in range(5):
    r = fetch('https://api.ipify.org?format=json')
    print(r.json())
7

Hataları ve yeniden denemeleri yönetin

Ağ hataları ve proxy zaman aşımları olur. Çağrıları try/except ile sarın ve farklı bir proxy ile yeniden deneyin. urllib3.Retry, HTTP düzeyindeki yeniden denemeleri otomatik olarak halleder.

import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry

retry_strategy = Retry(
    total=3,
    backoff_factor=1,
    status_forcelist=[429, 500, 502, 503, 504],
    allowed_methods=['GET', 'POST'],
)
adapter = HTTPAdapter(max_retries=retry_strategy)
session = requests.Session()
session.mount('http://', adapter)
session.mount('https://', adapter)
session.proxies = {'http': 'http://USERNAME:[email protected]:8080',
                   'https': 'http://USERNAME:[email protected]:8080'}

try:
    r = session.get('https://example.com', timeout=15)
    r.raise_for_status()
except requests.exceptions.ProxyError:
    print('Proxy failed — rotate to next')
except requests.exceptions.Timeout:
    print('Timeout — increase timeout or change proxy')
except requests.exceptions.RequestException as e:
    print(f'Other error: {e}')

Kod örnekleri

Hızlı başlangıç — 4 satır · python
import requests
proxies = {'http': 'http://USER:[email protected]:8080',
           'https': 'http://USER:[email protected]:8080'}
print(requests.get('https://api.ipify.org?format=json', proxies=proxies).json())
httpx ile asenkron (alternatif) · python
import httpx
import asyncio

async def fetch_all(urls):
    async with httpx.AsyncClient(proxy='http://USER:[email protected]:8080') as client:
        return await asyncio.gather(*[client.get(u) for u in urls])

results = asyncio.run(fetch_all(['https://example.com/p1', 'https://example.com/p2']))
for r in results:
    print(r.status_code)
Özel header'lar + çerezler · python
import requests

session = requests.Session()
session.proxies = {'http': 'http://USER:[email protected]:8080',
                   'https': 'http://USER:[email protected]:8080'}
session.headers.update({
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    'Accept-Language': 'en-US,en;q=0.9',
})

resp = session.get('https://example.com/login')
# Çerezler istekler arasında otomatik olarak korunur
resp = session.post('https://example.com/login', data={'user': 'me', 'pass': 'x'})

Python requests ile GProxy neden birlikte kullanılır?

Python requests, en çok kurulan Python HTTP kütüphanesidir — toplamda 30 milyarın üzerinde indirme. GProxy proxy'lerini eklemek 2 satır kod alır ve IP rotasyonu, coğrafi hedefleme veya anti-bot atlatma gerektiren her scraping, izleme ve otomasyon akışını açar. Bu rehber uçtan uca: kurulum, kod, uç durumlar, sorun giderme.

HTTP mi SOCKS5 mi — hangisi?

Kullanım senaryolarının %95'i için HTTP yeterli ve daha hızlıdır. SOCKS5 şu durumlarda öne çıkar: (a) UDP trafiği (oyun, özel protokoller), (b) tamamen HTTP dışı protokoller, veya (c) DNS'in proxy tarafından çözülmesini istiyorsanız (bunun için socks5h:// kullanın). GProxy her üründe ikisini de destekler — kullanım senaryonuza göre seçin.

Sticky oturumlar

Varsayılan olarak GProxy rotasyonlu residential, IP'yi her istekte değiştirir. Bazı akışlarda aynı IP'nin birkaç dakika korunması gerekir (oturum açma akışları, çok adımlı formlar). Bunun için kullanıcı adınıza bir oturum belirteci ekleyin:

USERNAME = 'your_user-session-abc123'  # -session- sonrasındaki herhangi bir dize IP'yi ~30 dk sabitler

Aynı oturum kimliği = aynı IP. Kimliği değiştirin = yeni IP.

Performans ipuçları

  • requests.Session kullanın. TCP bağlantılarını yeniden kullanır ve aynı sunucuya yapılan çoklu isteklerde 5-10 kat daha hızlıdır.
  • Makul bir timeout ayarlayın. Varsayılan olarak timeout yoktur — proxy yavaşsa betiğiniz sonsuza kadar askıda kalır. Residential için 15-30 saniye öneriyoruz.
  • Yalnızca durum koduna ihtiyacınız varsa yanıt gövdesini yüklemeyin. stream=True kullanıp bağlantıyı kapatın.
  • Paralel istekler — 5-50 eşzamanlı bağlantı için concurrent.futures.ThreadPoolExecutor, 100+ için asyncio + httpx kullanın.

Sık yapılan hatalar

  • HTTP proxy üzerinden HTTPS'te SSL hataları. verify=True ekleyin (varsayılan) — üretimde asla False yapmayın. Sertifika hatası özellikle proxy ile ilgiliyse, doğru ana bilgisayar adını kullandığınızdan emin olun.
  • Parolada özel karakterler. Parolayı proxies sözlüğüne koymadan önce URL kodlayın: urllib.parse.quote(password, safe='').
  • proxies={} verildiğinde requests, proxy ortam değişkenlerini dikkate almaz. Ortam değişkenleriyle yapılandırma istiyorsanız oturumda trust_env=True kullanın.

Kullanım senaryoları

Büyük ölçekli web scraping

requests ile GProxy residential rotasyonunu birleştirerek e-ticaret sitelerini IP banı olmadan tarayın.

API isteklerini dağıtma

API çağrılarını yaymak ve IP başına hız sınırlarından kaçınmak için GProxy IPv6 proxy havuzu kullanın.

SERP takibi

Yerel Google sıralamalarını izlemek için farklı şehirlerdeki residential proxy'ler arasında rotasyon yapın.

Fiyat istihbaratı

Korumasız fiyat sayfalarının yüksek hacimli taranması için veri merkezi proxy'leri.

Sneaker bot HTTP katmanı

Sneaker drop'larındaki ilk denemeler için statik virgin ISP proxy'leri kullanın (GProxy $6.50/IP virgin katmanı).

Sosyal medya sağlık kontrolleri

Coğrafi hedefli hesaplarda reklam teslimini doğrulamak için tek bir sticky residential oturum.

Pro ipuçları

Döngü içinde requests.get() değil, Session kullanın. Tek bir oturum bağlantıları canlı tutar — istek başına 100-500ms kazandırır.

Sticky ve rotasyonlu oturumları birlikte kullanın. Çok adımlı akışlar için sticky (giriş → işlem → çıkış), durumsuz çekimler için rotasyonlu.

Hatalarda çıkış IP'sini loglayın. Rotasyonun çalıştığını doğrulamak için her scrape'in başına print(requests.get('https://api.ipify.org', proxies=proxies).text) ekleyin.

FAQ

proxies sözlüğünde http:// mi https:// mi kullanmalıyım? +
Şema, hedef siteyi değil proxy protokolünü belirtir. HTTP proxy'ler için 'http://' kullanın (hem HTTP hem HTTPS hedef siteler için çalışır). SOCKS5 proxy'ler için 'socks5://' veya 'socks5h://' kullanın.
Neden socks5:// yerine socks5h:// kullanmalıyım? +
socks5h, DNS sorgularını proxy üzerinden gönderir (anonim). socks5 ise DNS'i yerelde çözer ve gerçek DNS sunucunuzu sızdırır. Anonimlik için her zaman socks5h.
Residential, IPv6 ve veri merkezi proxy'leri için aynı kodu kullanabilir miyim? +
Evet. Değişen tek şey proxy URL'sidir (farklı ana bilgisayar adları/portlar). Residential ve IPv6 için rp.gproxy.net, veri merkezi için dc.gproxy.net kullanılır. Kimlik doğrulama biçimi aynıdır.
Residential proxy'leri nasıl rotasyona sokarım? +
İki seçenek: (1) Her isteği yeni bir bağlantı üzerinden gönderin — GProxy rotasyonlu residential her istekte yeni bir IP verir. (2) Kullanıcı adınıza bir oturum kimliği ekleyerek sticky oturum kullanın (USER-session-XXX). Sticky, aynı IP'yi 30 dakikaya kadar korumanızı sağlar.
407 Proxy Authentication Required hatası alıyorum. +
Kimlik bilgileri veya proxy URL'si yanlış. Panelinizden tam USERNAME:PASSWORD@host:port dizesini kontrol edin. Paroladaki özel karakterlerin URL kodlanması gerektiğini unutmayın.
'Cannot connect to proxy: tunnel connection failed: 502' hatası alıyorum. +
Ya aboneliğiniz bitmiştir (panelde bakiyeyi kontrol edin) ya da engellenmiş bir hedefe erişmeye çalışıyorsunuz. Sorunu yalıtmak için önce farklı bir hedef URL deneyin.
requests HTTP/2 destekliyor mu? +
Hayır, requests yalnızca HTTP/1.1 destekler. HTTP/2 için httpx kullanın (aynı proxy URL biçimiyle çalışır) — yukarıdaki alternatif kod parçasına bakın.

Başlamaya hazır mısınız?

GProxy ile dakikalar içinde başlayın — residential proxy'ler $0.85/GB'den, IPv6 $0.03/proxy'den, kullandıkça öde.

Diğer entegrasyonlar

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