Python Requests ile Proxy Kullanma

Yorumlar: 0

Özetle, proxy'ler ağ hizmetlerine bağlanan bir dış katman olarak hizmet veren sunuculardır. Bir bilgisayar ve kullanıcının bilgi almak istediği site için aracı görevi görürler. Kullanıcının isteği, doğrudan ilgili siteye gönderilmek yerine, önce proxy'ye yönlendirilir ve daha sonra son sunucuya gönderilir. Dolayısıyla, proxy sunucusunun IP adresi, kullanıcınınki yerine sitenin kaydettiği IP adresidir.

Peki, neden proxy kullanalım?

  • Anonimlik:

Örneğin, kısıtlama veya engelleme korkusu olmadan bir siteden bilgi toplama ihtiyacı varsa. Proxy, gerçek kullanıcının IP adresini maskeleyerek gerçek dijital kimliğini değiştirmeye yardımcı olur.

  • Kısıtlamaları atlamak:

Herhangi bir kısıtlamanın olmadığı belirli bir ülkeden bir proxy kullanılabilir. Bunun nedeni, belirli ülkelerde bazı programlara ve web sitelerine erişimin sınırlı veya engellenmiş olmasıdır.

  • Yük dengeleme:

Belirli bir siteye çok sayıda istek gönderilirse, sistemin yüklenme ihtimali vardır. Sonuç olarak, büyük bir engellenme riski vardır. Aynı anda birden fazla proxy kullanmak, kullanıcıların istekleri belirli bir siteye eşit olarak dağıtmasına ve böylece tıkanmayı önlemesine olanak tanır.

Kurulum ve Yükleme Python Requests

Requests, Python kullanarak HTTP istekleri göndermek için kullanılan bir kütüphanedir. GET ve POST istekleri yapmayı kolaylaştırır. Python Requests'i proxy olmadan kullanmak HTTP istekleri gönderebilir, ancak anonimlik sağlamaz veya kısıtlamaları atlamaz.

1. İstekler Kitaplığının Kurulması

İstekleri yüklemek için aşağıdaki komutu terminale girmeniz yeterlidir:


pip install requests

2. Kurulumun Doğrulanması

Gerekli kütüphanenin düzgün bir şekilde kurulduğunu doğrulamak için Python geliştirme ortamını açmanız ve komutu çalıştırmanız gerekir:


import requests 

print(requests.__version__)

Her şey doğru şekilde yapıldıysa, komut dosyası sürüm numarasını döndürecektir.

Python Requests ile Proxy Nasıl Kullanılır

Requests kütüphanesini kurduktan sonra HTTP isteklerini çalıştırmaya başlayabiliriz. Bununla birlikte, bir proxy'yi dahil etmek için Python'da belirli yapılandırmalar yapılmalıdır.

Python'da istekler için doğru bir proxy yapılandırmak için izlenmesi gereken adımları inceleyelim. Python Requests ile SOCKS proxy yapılandırmalarını ayrı ayrı ele alacağız.

1. Proxy Sunucusunu Yapılandırma

Bir proxy kurmak için Python kullanmak, requests kütüphanesini kullanan kullanıcılar için çok kolaydır. Proxy sunucu adresinin bir sözlükte geçirilmesini ve daha sonra HTTP istekleri yapılırken kullanılmasını gerektirir.


proxies = {
    "http": "http://your-proxy-ip:port",
    "https": "http://your-proxy-ip:port",
}

response = requests.get("http://example.com", proxies=proxies)

2. Proxy Kimlik Doğrulama

Python Requests kullanırken, proxy kimlik doğrulamasını ayarlamak kolaydır. Şimdi detaylara daha yakından bakalım.


proxies = { 
    "http": "http://username:password@your-proxy-ip:port", 
    "https": "http://username:password@your-proxy-ip:port", 
} 

response = requests.get("http://example.com", proxies=proxies)

Doldurulması gereken iki yeni alan şunlardır:

  • username - proxy kullanıcı adı;
  • password - proxy şifresi.

3. SOCKS Proxy'leri Kullanma

Daha yüksek düzeyde anonimlik isteyen kullanıcılar için veya çok kısıtlanmış sitelerle çalışıyorsanız, standart HTTP proxy'leri işe yaramayabilir. Bu durumda, SOCKS proxy'leri daha iyi olabilir.

SOCKS proxy desteğini etkinleştirmek için, aşağıda listelenen komut kullanılarak ek bir kütüphanenin yüklenmesi gerekir:


pip install requests[socks]

Kurulduktan sonra, Python Requests aşağıdaki örnekte gösterildiği gibi kullanılabilecek bir SOCKS proxy kurmanıza izin verir.


import requests

proxies = {
    "http": "socks5h://your-proxy-ip:port",
    "https": "socks5h://your-proxy-ip:port",
}

response = requests.get("http://example.com", proxies=proxies)

Proxy sunucusunun kimlik doğrulamasına ihtiyacı varsa, bunları aşağıda gösterildiği gibi ekleyin.


proxies = {
    "http": "socks5h://username:password@your-proxy-ip:port",
    "https": "socks5h://username:password@your-proxy-ip:port",
}

Python Requests Proxy'lerle Oturumları Yönetme

Tek bir proxy aracılığıyla birçok istek yaparken, her isteğe eklemek yerine, proxy ile Python Requests oturumlarını kullanmak çok daha verimli hale gelir.

Bu proxy kullanma yöntemi, ayarların tüm oturumlarda korunmasına yardımcı olur. Ayrıca kodu basitleştirir, performansı artırır ve en önemlisi uygulamayı çok daha kolay hale getirir.

1. Python İstek Oturumlarını Proxy'lerle Kullanma

Bir oturum oluşturmak çok kolaydır, sadece requests.Session() yazın.

Aşağıdaki örneği ele alalım:


import requests

# Oturum oluşturma
session = requests.Session()

session.proxies = {
    "http": "http://username:password@your-proxy-ip:port",
    "https": "http://username:password@your-proxy-ip:port",
}

# Oturum aracılığıyla talep
response = session.get("http://example.com")

Bu oturumdaki tüm Python Requests, herhangi bir ek yapılandırma olmaksızın varsayılan olarak ayarlanan proxy'yi kullanacaktır.

2. Birden Çok Proxy'yi Kullanma Python Requests

Bir web sitesiyle kazıma amacıyla veya otomasyon için aktif olarak etkileşim kurduğunuzda, aynı proxy'yi tekrar tekrar kullanmak hesabınızın engellenmesine neden olabilir. Birkaç farklı proxy sunucunuz varsa, bu durum proxy'leri döndürerek yönetilebilir.

Aşağıdaki örnekte, web sayfasıyla her etkileşim için proxy'leri döndüren bir döngünün uygulanması gösterilmektedir:


import requests
import random

proxies_list = [
    "http://username:password@your-proxy-ip[1]:port",
    "http://username:password@your-proxy-ip[2]:port",
    "http://username:password@your-proxy-ip[3]:port",
]

session = requests.Session()

for _ in range(5):
    proxy = random.choice(proxies_list)  # Rastgele bir proxy seçin
    session.proxies = {"http": proxy, "https": proxy}

    response = session.get("http://example.com")
    print(f"Used proxy: {proxy}")
    print(response.status_code)

Sonuç

Özetle, proxy'leri daha iyi yönetmenize yardımcı olabilecek bazı öneriler:

  • Oturumları kullanın, böylece her istekte bir proxy ayarlamak zorunda kalmazsınız.
  • Daha iyi koruma için kayıt tutmayan anonim proxy'ler kullanın.
  • Engellenmeyi önlemek için birden fazla proxy kullanın.

Bu makalede, proxy sunucularının ne olduğuna, Python Requests proxy'nin nasıl düzgün kullanılacağına ve kodu basitleştirmek için oturumlar aracılığıyla proxy'lerin nasıl yönetileceğine değindik. Örnek ayrıca hem SOCKS hem de normal proxy'lerin kullanımını, kimlik doğrulamanın nasıl ele alındığını ve proxy yönetimini gösterir.

Yorumlar:

0 yorumlar