GProxy + Python requests — eksiksiz 2026 entegrasyon rehberi
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.
Ö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
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
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.
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>'}
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())
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))
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())
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
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())
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)
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.Sessionkullanı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=Truekullanıp bağlantıyı kapatın. - Paralel istekler — 5-50 eşzamanlı bağlantı için
concurrent.futures.ThreadPoolExecutor, 100+ içinasyncio + httpxkullanın.
Sık yapılan hatalar
- HTTP proxy üzerinden HTTPS'te SSL hataları.
verify=Trueekleyin (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=Truekullanı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.
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? +
Neden socks5:// yerine socks5h:// kullanmalıyım? +
Residential, IPv6 ve veri merkezi proxy'leri için aynı kodu kullanabilir miyim? +
Residential proxy'leri nasıl rotasyona sokarım? +
407 Proxy Authentication Required hatası alıyorum. +
'Cannot connect to proxy: tunnel connection failed: 502' hatası alıyorum. +
requests HTTP/2 destekliyor mu? +
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.
