/80Veri Toplama

Veri Toplama için Proxy Çözümü

API ve açık veri kaynaklarından zamanlanmış, toplu veri toplamada proxy'nin yeri, hız sınırına saygı, yeniden deneme ve doğru proxy türü seçimi.

Senaryo

Bir ekip, açık veri kaynaklarından ve izin verilen API uçlarından zamanlanmış, toplu veri hatları çalıştırır. Hat çok sayıda isteği paralel yürüttüğünde istek yükünü dağıtmak ve hatalı yanıtları sağlam biçimde yönetmek gerekir.

Bu tür hatlarda protokol uyumu (HTTP ya da SOCKS5), kimlik doğrulama yöntemi ve adres çeşitliliği proxy seçimini belirler.

/88Tipik mimari

Tipik mimari

İşten hedefe dört adım: proxy katmanı, isteklerin nasıl dağıtıldığına bağlıdır.

  1. kaynakVeri kaynaklarıAPI uçları ve açık veri adresleri, çekme takvimiyle birlikte tanımlanır.
  2. dağıtımİş kuyruğuİşler hız sınırı, yeniden deneme ve ölü mektup kuyruğuyla yürütülür.
  3. proxyProxy katmanıİstekler uygun türdeki proxy üzerinden dağıtılır; başarısız çıkışlar geçici olarak devre dışı kalır.
  4. hedefVeri uçlarıYanıtlar doğrulanır, şemaya oturtulur ve depoya yazılır.
Kavramsal şema: gerçek mimari iş yükünüze ve hedef sitenin kurallarına göre değişir.
/92Önerilen ürünler

Önerilen ürünler

Öneriler bir başlangıç noktasıdır; ürün özelliklerini ve sınırlamalarını ürün sayfasında kontrol edin.

Teknik uygulama ipuçları

Veri toplama hattında proxy, isteklerin hangi ağ adresinden çıktığını yönetmek için kullanılan bir araçtır. Kaynağın kurallarını değiştirmez; yükü dağıtır, çıkış kimliğini sabitler ya da bölgeye özgü yanıtlara erişim sağlar. Bu sayfa, API ve açık veri kaynaklarından zamanlanmış toplu işler kuran ekipler için bir mimari çerçeve sunar.

Senaryo ve gereksinimler

Tipik bir veri toplama işi şöyle başlar: her gece ya da her saat başı bir kaynak listesi taranır, yanıtlar doğrulanır, depoya yazılır ve bir sonraki çalıştırmaya kadar beklenir. Kaynaklar resmi bir API, kamuya açık bir veri kümesi ya da herkese açık sayfalar olabilir.

İşe başlamadan önce şu soruların cevabı net olmalıdır:

  • Kaynak ne sunuyor? Resmi API ya da indirilebilir veri kümesi varsa önce onu kullanın. Sayfa okuma, ikinci tercihtir ve ayrı bir konudur: web scraping çözümü bu yolu ele alır.
  • Sınır nerede uygulanıyor? Kota API anahtarına, hesaba, IP adresine veya bunların birleşimine bağlı olabilir. Proxy yalnızca IP'ye bağlı sınırları ilgilendirir.
  • Hacim ne kadar? Günde birkaç yüz istek ile saatte yüz binlerce istek farklı mimariler ister.
  • Yanıt bölgeye bağlı mı? Fiyat, stok ya da içerik ülkeye göre değişiyorsa çıkış konumu önemlidir.
  • Hata toleransı nedir? Eksik bir satırın maliyeti ile işi baştan koşmanın maliyetini karşılaştırın.

Bu cevaplar proxy türünden önce gelir. Cevaplar belirsizse proxy satın almak sorunu çözmez, yalnızca maliyet ekler.

Proxy hangi sorunu çözer?

Proxy üç somut sorunda işe yarar.

Çıkış adresi çeşitliliği. Bazı kaynaklar sınırı IP başına uygular. Tek bir sunucudan binlerce istek gönderirseniz kota hızla dolar. İstekleri birden çok çıkış adresine yaymak, her adresin kendi sınırı içinde kalmasını sağlar. IPv6 bu noktada ilgi çekicidir; çünkü bir /64 ön eki çok geniş bir adres uzayı demektir. Ancak bu çeşitlilik her hedefte aynı değeri taşımaz: hedef, tek tek adres yerine daha geniş bir aralığı tek kaynak sayabilir. Ürün sayfasında da bazı platformların IPv6 aralıklarına daha temkinli yaklaştığı belirtilir.

Sabit ve tanınabilir kimlik. Bazı API'ler yalnızca önceden bildirilen IP adreslerinden gelen isteği kabul eder. Bu durumda dönen adres değil, sabit bir adres gerekir; ISP proxy bu iş için uygundur.

Bölgesel doğrulama. Aynı uç noktanın farklı ülkelerden farklı yanıt vermesi mümkündür. Çıkış konumunu değiştirerek bunu karşılaştırabilirsiniz.

Proxy şunları çözmez: API anahtarı kotasını artırmaz, kullanım koşullarını ortadan kaldırmaz, kötü yazılmış bir istemcinin hata yönetimini düzeltmez.

Önemli

Hız sınırını aşmak proxy'nin amacı olmamalıdır. Kaynak bir sınır koyduysa, işinizi o sınıra göre planlayın. Sınırı yok sayan bir hat, sonunda erişimi kaybeder.

Önerilen mimari

Sağlam bir hat dört katmandan oluşur.

  1. Zamanlayıcı. İşi belirli aralıklarla başlatır. Basit işlerde cron, karmaşık bağımlılıklarda bir iş kuyruğu yeterlidir.
  2. İstek kuyruğu ve hız denetimi. Her kaynak için ayrı bir bekleme süresi ve eşzamanlı istek sınırı tanımlayın. Sınır, kaynağın yayımladığı değerden düşük olsun.
  3. İstemci katmanı. Zaman aşımı, yeniden deneme ve proxy seçimi burada yapılır.
  4. Doğrulama ve depolama. Gelen veriyi şemaya göre doğrulayın, ham yanıtı ayrı saklayın, işlenmiş veriyi ayrıca yazın.

Zamanlanmış bir iş için basit bir cron girdisi:

Bash
# Her gün 03:15'te toplayıcıyı çalıştırır, çıktıyı günlüğe yazar.
15 3 * * * /usr/bin/python3 /opt/toplayici/topla.py >> /var/log/topla.log 2>&1

İstemci katmanında üç kural işi kurtarır: kısa zaman aşımı, artan bekleme ile sınırlı yeniden deneme ve sunucunun Retry-After başlığına uyma.

Python
import time
import requests

PROXY = "http://KULLANICI:PAROLA@PROXY_HOST:PROXY_PORT"
PROXIES = {"http": PROXY, "https": PROXY}
GECICI = {429, 500, 502, 503, 504}


def getir(url, deneme=4):
    bekleme = 2
    for _ in range(deneme):
        try:
            yanit = requests.get(url, proxies=PROXIES, timeout=(5, 20))
        except requests.RequestException:
            yanit = None
        if yanit is not None and yanit.status_code == 200:
            return yanit.json()
        if yanit is not None and yanit.status_code not in GECICI:
            yanit.raise_for_status()
        sure = bekleme
        if yanit is not None and "Retry-After" in yanit.headers:
            try:
                sure = max(sure, int(yanit.headers["Retry-After"]))
            except ValueError:
                pass
        time.sleep(sure)
        bekleme *= 2
    raise RuntimeError(f"Vazgeçildi: {url}")

Bu kod örnek amaçlıdır; PROXY_HOST, PROXY_PORT, KULLANICI ve PAROLA yer tutucudur. Gerçek değerleri koda gömmek yerine ortam değişkeninden okuyun.

Veri kalitesi

Toplama hattının en sinsi hatası, sessizce bozuk veri yazmasıdır. Birkaç önlem yeterlidir:

  • Her yanıtı şemaya göre doğrulayın; beklenmeyen alanı kaydetmek yerine işaretleyin.
  • Kayıt sayısındaki ani düşüşü uyarıya bağlayın.
  • Aynı kaydı iki farklı çalıştırmada karşılaştırarak değişim oranını izleyin.
  • Hata sayfasının HTTP 200 ile döndüğü kaynaklarda içeriği de kontrol edin.
  • Zaman damgasını ve kullanılan çıkış konumunu her kayda ekleyin; bölgeye göre farklılıkları sonradan açıklayabilirsiniz.

Proxy hatalarını veri hatalarından ayırmak için Proxy Kontrol aracını hat dışında, elle çalıştırabilirsiniz. Aracın yalnızca size ait veya test yetkiniz olan proxy'ler için kullanılması gerekir.

Doğru proxy türünü seçmek

Seçim, hacminize ve kaynağın davranışına bağlıdır. Aşağıdaki tablo ürün sayfalarında belirtilen özelliklere dayanır; ayrıntılar için ilgili ürün sayfasına bakın.

TürGüçlü yanıDikkat edilecek nokta
IPv6 ProxyAdet bazlı fiyat, geniş çıkış adresi çeşitliliğiHedefin AAAA kaydı gerekir; protokol HTTP(S), SOCKS5 için önce teyit alın
Datacenter ProxyAdet bazlı fiyat, trafik ücreti yok, ttl-0 ile istek başına farklı IPVeri merkezi adresi olarak tanınır; sıkı korumalı kaynaklarda ek doğrulama çıkabilir
ISP ProxySabit, operatöre kayıtlı IPv4IP adedi ve süre bazlı fiyat; çeşitlilik sınırlıdır
HTTP & SOCKS5 ProxyISP paketlerinde iki protokol seçeneğiAyrı bir paket değildir; satın alma ISP Proxy üzerinden yapılır

IPv6 ile ilgili dürüst bir sınır vardır. Hedefin yalnızca A kaydı varsa ve çıkış ağında NAT64/DNS64 yoksa, yalnızca IPv6 çıkışı olan bir proxy o hedefe ulaşamaz. Ürün sayfası bir çeviri katmanından söz eder, fakat kapsamı doğrulanamadı. NAT64 üzerinden ulaşılan bir hedef genellikle sizin IPv6 adresinizi değil çeviri katmanının IPv4 adresini görür (RFC 6146 (yeni sekmede açılır)). Bu yüzden asıl kaynaklarınızı sipariş vermeden önce küçük bir denemeyle sınayın. IPv6'nın temelleri için IPv6 nedir sayfasına bakabilirsiniz.

Fiyat için güncel bilgi ürün sayfalarındadır. Satın almaya hazırsanız IPv6 Proxy paketlerine (yeni sekmede açılır) buradan gidebilirsiniz.

Sık yapılan hatalar

  • Önce proxy, sonra tasarım. Kaynağın kuralları ve kotası okunmadan proxy satın almak. Önce kaynak belgelerini okuyun.
  • Sınırsız eşzamanlılık. Çıkış adedi çok diye hedefe aynı anda yüzlerce istek göndermek. Sınır, adres başına değil kaynak başına da düşünülmelidir.
  • Sabit bekleme. Hata aldığınızda aynı saniye aralığıyla tekrar denemek. Artan bekleme ve Retry-After kullanın.
  • Kimlik bilgisini koda gömmek. Parola depoya girer. Ortam değişkeni ya da gizli anahtar deposu kullanın.
  • Hatayı veriyle karıştırmak. Zaman aşımı ya da engel sayfasını "boş sonuç" diye kaydetmek.
  • Tek tür proxy ile her şeyi çözmeye çalışmak. API'ler için sabit adres, geniş tarama için çeşitli adres daha uygun olabilir; ikisini ayrı hatlarda ele alın.
  • Bölge farkını unutmak. Aynı çalıştırmanın farklı konumlardan farklı veri döndürebileceğini kaydetmemek.

Sorumlu kullanım

Toplayacağınız verinin kamuya açık olması, onu istediğiniz biçimde toplayabileceğiniz anlamına gelmez. Kaynağın kullanım koşullarını, robots.txt yönergelerini ve ilgili mevzuatı (kişisel verilerin korunması dahil) kontrol edin. Kişisel veri içeren kaynaklarda hukuki dayanağınızı önceden netleştirin.

Pratik ilkeler:

  • Önce resmi API'yi ve açık veri kümelerini tercih edin.
  • Hedef siteyi yormayın; hız sınırının altında kalın ve yoğun saatlerden kaçının.
  • Kimlik doğrulaması ya da ödeme duvarıyla korunan içeriği toplamayın.
  • Erişim engeliyle karşılaştığınızda onu aşmaya çalışmak yerine kaynağın sahibiyle iletişime geçin.

Yasalara ve hedef sitenin kullanım koşullarına uyum sizin sorumluluğunuzdadır. Bu sayfa hukuki danışmanlık değildir.

Sorumlu kullanım

Yasalara ve hedef sitenin kullanım koşullarına uyum sizin sorumluluğunuzdadır. Proxy, kuralları aşma aracı değildir ve engellenmeyeceğiniz anlamına gelmez.

  • robots.txt yönergelerine, hız sınırlarına ve hedef sitenin API kurallarına uyun.
  • Kişisel veri işliyorsanız hukuki dayanağınızı belirleyin; gereğinden fazlasını toplamayın.
  • Veri kaynağının lisansını ve API kullanım koşullarını inceleyin; kişisel veri içeren alanları toplamayın ya da hukuka uygun işleyin.

Sık sorulan sorular

Veri toplamada proxy hız sınırını aşmak için mi kullanılır?

Hayır. Hız sınırı çoğu zaman API anahtarına veya hesaba bağlıdır; çıkış adresini değiştirmek bu kotayı büyütmez. Proxy, yükü dengeli dağıtmak ve bölgeye özgü yanıtları görmek için kullanılır; sınırlara uymak sizin sorumluluğunuzdadır.

Resmi API varsa proxy gerekir mi?

Çoğu zaman gerekmez. Resmi API ve açık veri kümeleri en kararlı yoldur. Proxy, kaynak tarafından IP bazında sınırlanan toplu işlerde veya bölgeye göre değişen yanıtları karşılaştırırken anlamlı olur.

IPv6 proxy her hedefte çalışır mı?

Hayır. Hedefin AAAA kaydı yoksa yalnızca IPv6 çıkışı olan bir proxy ona doğrudan ulaşamaz. IPv6 Proxy ürün sayfası bir NAT64/DNS64 katmanından söz eder; kapsamı doğrulanamadığı için hedefinizde önceden test edin.

Toplu işte hangi proxy türünü seçmeliyim?

Çıkış adresi çeşitliliği ve adet önemliyse IPv6 veya Datacenter proxy, sabit ve operatöre kayıtlı bir kimlik gerekiyorsa ISP proxy uygundur. Sıkı korumalı kaynaklarda Datacenter adresleri ek doğrulamayla karşılaşabilir.

/128Son adım

Veri Toplama için ürün seçin

Ürün sayfalarında özellikleri ve başlangıç fiyatlarını bulabilir, sorularınız için WhatsApp'tan yazabilirsiniz.