/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.
Tipik mimari
İşten hedefe dört adım: proxy katmanı, isteklerin nasıl dağıtıldığına bağlıdır.
- kaynakVeri kaynaklarıAPI uçları ve açık veri adresleri, çekme takvimiyle birlikte tanımlanır.
- dağıtımİş kuyruğuİşler hız sınırı, yeniden deneme ve ölü mektup kuyruğuyla yürütülür.
- 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.
- hedefVeri uçlarıYanıtlar doğrulanır, şemaya oturtulur ve depoya yazılır.
Önerilen ürünler
Öneriler bir başlangıç noktasıdır; ürün özelliklerini ve sınırlamalarını ürün sayfasında kontrol edin.
Geniş adres alanından çıkış sağlar; hedef IPv6 destekliyorsa yükü yaymak için. Yalnızca HTTP(S).
HTTP/HTTPS ve SOCKS5 portlarıyla; IP whitelist ve kullanıcı/parola seçenekleriyle otomasyona uygundur.
Sabit adres gereken, kimlik doğrulamalı uç noktalar için.
Aracınız hangi protokolü bekliyorsa onunla bağlanmak için HTTP ve SOCKS5 desteği.
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.
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.
- Zamanlayıcı. İşi belirli aralıklarla başlatır. Basit işlerde
cron, karmaşık bağımlılıklarda bir iş kuyruğu yeterlidir. - İ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.
- İstemci katmanı. Zaman aşımı, yeniden deneme ve proxy seçimi burada yapılır.
- 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:
# 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.
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ür | Güçlü yanı | Dikkat edilecek nokta |
|---|---|---|
| IPv6 Proxy | Adet bazlı fiyat, geniş çıkış adresi çeşitliliği | Hedefin AAAA kaydı gerekir; protokol HTTP(S), SOCKS5 için önce teyit alın |
| Datacenter Proxy | Adet bazlı fiyat, trafik ücreti yok, ttl-0 ile istek başına farklı IP | Veri merkezi adresi olarak tanınır; sıkı korumalı kaynaklarda ek doğrulama çıkabilir |
| ISP Proxy | Sabit, operatöre kayıtlı IPv4 | IP adedi ve süre bazlı fiyat; çeşitlilik sınırlıdır |
| HTTP & SOCKS5 Proxy | ISP paketlerinde iki protokol seçeneği | Ayrı 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-Afterkullanı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.
/112İlgili çözümler ve yazılar
- ÇözümWeb ScrapingDağıtık, hız sınırına saygılı veri çekme
- ÜrünDatacenter ProxyIP adedine göre fiyatlanan statik IPv4 datacenter proxy
- ÜrünISP ProxyOperatöre kayıtlı sabit IPv4; Türkiye, ABD ve Avrupa paketleri
- AraçProxy KontrolHTTP, HTTPS ve SOCKS5 proxy bağlantısını sınar
- RehberIPv6 Prefix Nedir? Ön Ek Uzunluğu Ne Anlama Gelir?IPv6 prefix (ön ek), adresin soldan kaç bitinin ağı belirlediğini söyler. /N gösterimi, ağ ve ana makine bitleri, /64…
/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.