İçeriğe geç
Guides 4 dk okuma 1355 görüntülenme

Python'da requests Kütüphanesi ile Proxy Kullanımı

Güvenli web kazıma için Python requests kütüphanesinde proxy kullanmayı öğrenin. GProxy'yi nasıl entegre edeceğinizi ve kısıtlamaları nasıl aşacağınızı görün.

Python
Python'da requests Kütüphanesi ile Proxy Kullanımı

HTTP proxy, sizinle internet arasında ağ geçidi görevi gören bir ara sunucudur. Proxy kullandığınızda istekleriniz hedef sunucuya ulaşmadan önce proxy sunucusu üzerinden geçer. Bu, IP adresinizi gizler ve coğrafi kısıtlamaları aşma, web kazıma, güvenliği artırma gibi çeşitli amaçlarla kullanılabilir. Python'ın requests kütüphanesi, HTTP isteklerinizde proxy kullanmayı oldukça kolaylaştırır.

requests Kütüphanesiyle Proxy Neden Kullanılır?

requests kütüphanesiyle proxy kullanmak isteyebilmenizin birkaç temel nedeni vardır:

  • Anonimlik: Proxy'ler IP adresinizi gizler ve çevrimiçi etkinliklerinizin izlenmesini zorlaştırır.
  • Coğrafi Kısıtlamaları Aşma: Belirli bölgelerle sınırlı içeriğe, o bölgede bulunan bir proxy sunucusu üzerinden erişin.
  • Web Kazıma: Farklı proxy sunucuları arasında rotasyon yaparak site kazırken engellenmekten kaçının. Birçok site, verilerinin kötüye kullanımını önlemek için hız sınırlaması veya IP engellemesi uygular.
  • Yük Dengeleme: İstekleri birden fazla sunucuya dağıtarak performansı ve güvenilirliği artırın.
  • Güvenlik: Proxy'ler bilgisayarınızla internet arasında tampon görevi görerek ek bir güvenlik katmanı ekler. Ayrıca zararlı içeriği filtreleyebilirler.
  • Test: Test amacıyla farklı konumlardan gelen kullanıcı erişimini simüle edin.

requests İçinde Proxy Ayarlama

requests kütüphanesi, istek fonksiyonlarındaki (get, post, put, delete vb.) proxies parametresi ile proxy yapılandırmanın basit bir yolunu sunar. proxies parametresi, anahtarların protokoller (örneğin 'http', 'https'), değerlerin ise proxy URL'leri olduğu bir sözlük alır.

Temel Proxy Yapılandırması

requests kütüphanesiyle proxy kullanmanın temel bir örneği:

import requests

proxies = {
  'http': 'http://your_proxy_address:port',
  'https': 'https://your_proxy_address:port',
}

try:
    response = requests.get('https://www.example.com', proxies=proxies)
    response.raise_for_status() # Hatalı yanıtlarda (4xx veya 5xx) HTTPError fırlatır
    print(response.status_code)
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

your_proxy_address ve port değerlerini proxy sunucunuzun gerçek adresi ve portuyla değiştirin. raise_for_status() metodu hata yönetimi için kritiktir; HTTP durum kodu bir hatayı gösteriyorsa (örneğin 404 Not Found, 500 Internal Server Error) istisna fırlatır.

HTTP ve HTTPS için Farklı Proxy Kullanma

HTTP ve HTTPS trafiği için farklı proxy'ler de belirtebilirsiniz:

import requests

proxies = {
  'http': 'http://http_proxy_address:port',
  'https': 'https://https_proxy_address:port',
}

try:
    response = requests.get('https://www.example.com', proxies=proxies)
    response.raise_for_status()
    print(response.status_code)
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

Proxy Kimlik Doğrulaması

Birçok proxy sunucusu kimlik doğrulaması ister. Kullanıcı adı ve parolayı proxy URL'sine ekleyebilirsiniz:

import requests

proxies = {
  'http': 'http://username:password@your_proxy_address:port',
  'https': 'https://username:password@your_proxy_address:port',
}

try:
    response = requests.get('https://www.example.com', proxies=proxies)
    response.raise_for_status()
    print(response.status_code)
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

Alternatif olarak, daha karmaşık kimlik doğrulama şemaları için requests.auth modülünü kullanabilirsiniz. Ancak temel kullanıcı adı/parola doğrulamasında kimlik bilgilerini URL'ye gömmek genellikle yeterlidir.

SOCKS Proxy'ler

requests kütüphanesi SOCKS proxy'leri destekler, ancak requests[socks] ek paketini kurmanız gerekir.

pip install requests[socks]

Kurulumdan sonra SOCKS proxy'leri şöyle kullanabilirsiniz:

import requests

proxies = {
  'http': 'socks5://user:pass@host:port',
  'https': 'socks5://user:pass@host:port'
}

try:
    response = requests.get('https://www.example.com', proxies=proxies)
    response.raise_for_status()
    print(response.status_code)
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

socks4 veya socks5 şemalarını kullanabilirsiniz. SOCKS proxy'niz kullanıcı adı/parola istemiyorsa bunları URL'den çıkarmanız yeterlidir (örneğin 'socks5://host:port').

Proxy Türlerinin Karşılaştırması

Farklı proxy türlerinin karşılaştırması:

Özellik HTTP Proxy HTTPS Proxy SOCKS Proxy
Protokol HTTP HTTPS SOCKS (4, 5)
Şifreleme Şifreleme yok (hedef sunucu HTTPS değilse) Proxy sunucusuna kadar trafiği şifreler Şifrelemeyi destekler (SOCKS5)
Kullanım Alanları Web'de gezinme, HTTP sitelere erişim Web'de gezinme, HTTPS sitelere erişim Çok yönlü, farklı protokolleri destekler (HTTP, HTTPS, FTP vb.)
Güvenlik Daha az güvenli Daha güvenli Daha güvenli (özellikle SOCKS5 ile)
Karmaşıklık Kurulumu basit Kurulumu basit Yapılandırması daha karmaşık olabilir
Uygulama Katmanı HTTP protokolünü anlar HTTP protokolünü anlar Taşıma katmanında çalışır

Web Kazıma için Proxy Rotasyonu

Web kazımada IP adresinizin engellenmemesi için birden fazla proxy arasında rotasyon yapmak kritiktir. Proxy rotasyonunu şöyle uygulayabilirsiniz:

import requests
import random

proxy_list = [
  'http://user1:[email protected]:8000',
  'http://user2:[email protected]:8001',
  'http://user3:[email protected]:8002',
]

def get_page(url):
    proxy = random.choice(proxy_list)
    proxies = {'http': proxy, 'https': proxy}
    try:
        response = requests.get(url, proxies=proxies, timeout=10)  # timeout ekle
        response.raise_for_status()
        return response.text
    except requests.exceptions.RequestException as e:
        print(f"Error using proxy {proxy}: {e}")
        return None

url = 'https://www.example.com'
content = get_page(url)

if content:
    print("Successfully retrieved content.")
    # İçeriği burada işleyin
else:
    print("Failed to retrieve content.")

Bu örnekte:

  • Bir proxy sunucusu listesi tutulur.
  • random.choice() fonksiyonu her istek için listeden rastgele bir proxy seçer.
  • Bir proxy yanıt vermediğinde betiğin süresiz beklemesini önlemek için requests.get() fonksiyonuna timeout eklenir.
  • İstisnaları yakalamak ve farklı bir proxy ile yeniden denemek için hata yönetimi uygulanır.

Hataları düzgün ele almayı ve bir istek başarısız olduğunda farklı proxy'lerle yeniden deneme mantığı kurmayı unutmayın. Daha büyük ölçekli kazıma projeleri için daha güçlü bir proxy yönetim kütüphanesi kullanmayı değerlendirin.

Sık Karşılaşılan Sorunlar ve Çözümleri

  • Proxy Kimlik Doğrulama Hataları: Kullanıcı adı ve parolanızı tekrar kontrol edin. Proxy URL'sinde doğru şekilde kodlandıklarından emin olun.
  • Bağlantı Hataları: Proxy sunucusunun çalıştığını ve ağınızdan erişilebilir olduğunu doğrulayın. Güvenlik duvarı ayarlarını kontrol edin.
  • Zaman Aşımları: requests.get() fonksiyonundaki timeout değerini artırın. Varsayılan timeout bazı proxy sunucuları için çok kısa olabilir.
  • Engellenen İstekler: Hedef site, proxy sunucusunun IP adresini engelliyor olabilir. Farklı bir proxy veya rotasyonlu bir proxy listesi deneyin.
  • SOCKS Proxy Hataları: requests[socks] ek paketini kurduğunuzdan emin olun. SOCKS proxy sunucusunun doğru yapılandırıldığını doğrulayın.

Sonuç

Python'ın requests kütüphanesiyle proxy kullanmak; web kazıma, coğrafi kısıtlı içeriğe erişim ve güvenliği artırma gibi çeşitli görevler için güçlü bir tekniktir. Proxy'leri nasıl yapılandıracağınızı, kimlik doğrulamayı nasıl ele alacağınızı ve rotasyonu nasıl uygulayacağınızı öğrenerek Python uygulamalarınızda proxy'lerden etkin biçimde yararlanabilirsiniz. Hataları düzgün ele almayı ve ihtiyacınıza uygun proxy türünü seçmeyi unutmayın.

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