Web Scraping rehberi
Kısa cevap
Residential proxy ile web scraping, datacenter ağlarını kısıtlayan hedeflerde isteklerin gerçek bir ISP aboneliği üzerinden çıkmasını sağlar; ancak engel aşma aracı değildir. Bu sayfa yumuşak engel belirtilerini okumayı, hız sınırına saygılı bir tarama planı kurmayı, GB kotasını katalog fiyatlarıyla hesaplamayı, oturumlu akışlarda static seçimini ve hukuki sınırları adım adım anlatır.
Residential proxy ile web scraping: korumalı hedefte çıkış kimliğinin rolü
Bir hedef site isteği değerlendirirken yalnızca içeriğe bakmaz; isteğin hangi ağdan geldiğine de bakar. Bulut veya veri merkezi bloklarından, yani belirli ASN’lerden gelen trafik, birçok sitede “insan ziyaretçi” varsayımının dışında kalır; bazı hedefler bu ağ bloklarını baştan kısıtlar. Bu yüzden aynı betik aynı hızda ve aynı başlıklarla çalışsa bile ev bağlantısı üzerinden gelen istek ile veri merkezinden gelen istek farklı karşılanabilir. Residential proxy ile web scraping bu farkı kapatmaya yarar: istek, gerçek bir internet servis sağlayıcısının abonesine ait adres üzerinden çıkar ve hedef siteye sıradan bir bağlantı gibi görünür.
Bu cümlenin kritik kısmı “görünür” kelimesidir. Çıkış kimliği, kuralları değiştirmez. Hedefin kullanım koşulları, robots.txt dosyası ve hız sınırları aynen geçerlidir. Residential çıkışın tek işi, meşru ve izinli bir veri toplama işinin yalnızca ağ türü yüzünden reddedilmesini engellemektir. ResidentialProxy bu çerçevede, korumalı hedeflerde erişim, yerel sonuçlar ve hesap-oturum güvenilirliği gerektiren işler için konumlanır.
Sayfanın geri kalanı şu sorulara cevap verir: Hedefin tepkisi gerçekten ağ kaynaklı mı? Hangi belirtiler yumuşak engele işaret eder? İstek hızını hangi mantıkla seçmeli? GB kotası nasıl hesaplanır? Oturum isteyen akışta neden static gerekir? Hangi noktada durup hedef sahibiyle konuşmak gerekir? Ürün sayfasındaki paket kartlarını ve genel özellik listesini tekrar etmiyoruz; burada karar mantığı ve hesap var.
Yumuşak engel belirtilerini tanımak
Sert engel kolay fark edilir: 403 ya da 429 kodu, “erişim reddedildi” sayfası. Asıl sorun yumuşak engeldir. İstek 200 koduyla döner, boru hattınız hata görmez, ama gelen sayfa gerçek içerik değildir. Aylarca eksik veriyle çalışıp bunu fark etmeyen ekipler az değildir. Bu yüzden her yanıtı yalnızca durum koduna göre değil, içeriğin beklenen yapıya uyup uymadığına göre sınıflandırmak gerekir.
| Belirti | Olası okuma | İlk adım |
|---|---|---|
| 200 döner ama ürün listesi boş | Sayfa iskeleti geldi, veri yüklenmedi veya ziyaretçi sınıfı kısıtlandı | Aynı URL’yi tarayıcıda elle açıp karşılaştırın; boşluk yalnızca otomasyonda görünüyorsa hız ve başlıkları gözden geçirin |
| Yanıt boyutu birden aniden küçülüyor | Gerçek sayfa yerine kısa bir uyarı veya doğrulama sayfası geliyor | Yanıt gövdesinin ilk birkaç yüz karakterini kaydedin ve boyut eşiğiyle alarm kurun |
| Aynı sayfa her denemede aynı ama eski veri | Önbellekten sunulan kopya veya sınırlı görünüm | Aynı adresi farklı zamanda ve farklı çıkıştan bir kez deneyin; fark yoksa sorun ağ değil içeriktir |
| Yanıt süresi giderek uzuyor | Hedef sizi yavaşlatıyor olabilir | İstek hızını düşürün, aralıkları açın; hızlanmak yerine yavaşlamak çoğu zaman çözümdür |
| Yönlendirme zinciri uzuyor veya giriş sayfasına dönüyor | Oturum geçersiz ya da tarama kapsamı dışına çıkıldı | Oturum gerektiren akışı ayırın; oturumlu akışlar bölümüne bakın |
| Bazı ülkelerde veri var, bazılarında yok | İçerik bölgeye bağlı veya lisans kısıtlı | Beklenen davranışı hedefin belgelerinden doğrulayın; ülke çıkışını yanlış seçmiş olabilirsiniz |
| Gövdede doğrulama veya otomatik trafik uyarısı ifadeleri | Hedef otomatik trafiği ayırt etti | Taramayı duraklatın; robots.txt ve kullanım koşullarını yeniden okuyun |
Tabloyu bir karar ağacı gibi değil, bir uyarı sözlüğü gibi kullanın. Tek bir belirti kesin sonuç vermez; ama üç belirtinin aynı anda görülmesi, çıkış ağı değiştirmekten önce hızınızı ve davranışınızı sorgulamanız gerektiğini gösterir. Residential çıkış, datacenter reddini çözebilir; fakat siz hedefin kaldırabileceğinden hızlı gidiyorsanız residential adres de aynı sonucu görür.
Sorun gerçekten ağ türünden mi? Teşhis için altı adım
Residential pakete geçmeden önce sorunun gerçekten ağ kaynaklı olduğunu doğrulayın. Aksi halde GB harcar, sorunu çözmeden bütçeyi büyütürsünüz. Aşağıdaki sıra, en ucuz kontrolden en pahalıya doğru ilerler.
- Hedefin robots.txt dosyasını ve kullanım koşullarını okuyun. Otomatik erişim açıkça yasaksa burada durun; teknik çözüm aramak anlamsızdır.
- Resmi bir API, veri akışı veya toplu indirme seçeneği olup olmadığına bakın. Varsa scraping yerine onu kullanmak hem daha ucuz hem daha güvenlidir.
- Tek bir sayfayı normal tarayıcıdan, kendi bağlantınızla açın ve içeriği not edin. Bu, “doğru cevap neye benziyor” sorusunun referansıdır.
- Aynı sayfayı veri merkezi çıkışından düşük hızla, tek istekle deneyin. Referansla aynı içerik geliyorsa sorun ağ türü değil, hacim veya davranıştır.
- Aynı tek isteği residential çıkıştan, hedefin beklediği ülkeden deneyin ve yanıtı referansla karşılaştırın. Fark yalnızca burada kapanıyorsa ağ türü gerçekten belirleyicidir.
- Farkı yazıya dökün: hangi URL, hangi ülke, hangi çıkış, hangi yanıt boyutu. Bu not hem karar kaydınız hem de ileride hata ayıklarken ilk başvurunuzdur.
Beşinci adımda fark kapanmıyorsa residential çıkış sorununuzu çözmüyor demektir. Bu durumda genellikle üç neden vardır: hız çok yüksek, istek başlıkları ve davranış tutarsız ya da içerik oturum veya bölge koşuluna bağlı. Üçüncüsü için ülke seçimi ve static IP bölümlerine geçin.
Hız sınırına saygılı tarama planı
Hız sınırı, hedef sitenin size söylediği en açık cümledir. Hedefler bunu bazen Retry-After başlığıyla, bazen robots.txt içindeki Crawl-delay yönergesiyle, bazen de yalnızca yavaşlayan yanıtlarla bildirir. Saygılı bir plan, bu sinyalleri okur ve ona göre geri çekilir. Rotating çıkış size çok sayıda adres verir; ama hedefin sunucusunun kapasitesi adres sayısıyla büyümez. Aynı siteye saniyede yüzlerce istek göndermek, hangi IP’den çıkarsa çıksın hedefe yük bindirir.
| Hedef profili | Başlangıç ritmi | Artırma koşulu | Geri çekilme tetikleyicisi |
|---|---|---|---|
| Küçük işletme sitesi, kaynak sınırlı | Hedef başına tek eşzamanlı istek, istekler arasında birkaç saniye | Yalnızca hedef sahibinin izni varsa | İlk 429 veya ilk yavaşlama |
| Orta ölçekli e-ticaret veya ilan sitesi | Hedef başına 2–3 eşzamanlı istek, düzenli aralık | Yanıt süresi sabit kalıyorsa ve hata sıfırsa küçük adımlarla | Yanıt süresinin yaklaşık iki katına çıkması veya tekrar eden boş sayfa |
| Yoğun trafikli büyük platform | robots.txt ve belgeler izin veriyorsa düşük eşzamanlılıkla başlayın | Önce resmi API seçeneğini değerlendirin | Herhangi bir doğrulama sayfası veya Retry-After başlığı |
| Kamu verisi yayınlayan kurum sitesi | Çalışma saati dışı, tek akış, çok düşük hız | Kurum duyurularında belirtilen sınırlar | Hata kodlarında artış veya erişim kısıtı duyurusu |
Planın iki değişkeni vardır: eşzamanlılık ve aralık. Eşzamanlılığı hedef başına sınırlayın, toplam sınırı ayrıca tutun; böylece birden fazla hedefi paralel tararken hiçbirine fazla yüklenmezsiniz. Aralığı sabit bir taban olarak seçin; amaç fark edilmemek değil, ani yük yığılmalarından kaçınmaktır. Aşağıdaki iskelet, robots.txt kontrolü, Retry-After saygısı ve indirilen bayt sayacı içerir. Bağlantı bilgileri yer tutucudur; gerçek değerleri panelden alın.
import time
import urllib.robotparser
import requests
PROXY = 'http://KULLANICI:ŞİFRE@GATEWAY:PORT'
PROXIES = {'http': PROXY, 'https': PROXY}
UA = 'ornek-veri-toplayici/1.0 (iletisim: [email protected])'
ARALIK_SN = 4.0 # varsayım: hedef başına istekler arası taban süre
MAKS_DENEME = 3
rp = urllib.robotparser.RobotFileParser()
rp.set_url('HEDEF_URL/robots.txt')
rp.read()
toplam_bayt = 0
def getir(url):
global toplam_bayt
if not rp.can_fetch(UA, url):
return None # robots.txt izin vermiyorsa istek atılmaz
for deneme in range(MAKS_DENEME):
r = requests.get(url, proxies=PROXIES, headers={'User-Agent': UA}, timeout=30)
toplam_bayt += len(r.content) # yaklaşık bayt sayacı; kesin kota tüketimi için paneli esas alın
if r.status_code == 200:
return r.text
if r.status_code in (429, 503):
bekle = r.headers.get('Retry-After', '')
bekle = int(bekle) if bekle.isdigit() else 30 * (deneme + 1)
time.sleep(bekle) # hedef yavaşlamamızı istiyor
continue
return None # 403, 404 gibi kodlarda yeniden deneme yok
return None
for sayfa in ['HEDEF_URL/kategori/1', 'HEDEF_URL/kategori/2']:
icerik = getir(sayfa)
time.sleep(ARALIK_SN)
print('Toplam indirilen bayt:', toplam_bayt)GB kotası hesabı: baytı sayfaya değil yanıta göre ölçmek
Rotating IPv4 residential paketleri katalogda GB bazlı ve tek seferlik olarak yayınlanır. Bu, maliyetin istek sayısına değil aktarılan veri miktarına bağlı olduğu anlamına gelir. Bir ürün sayfası tarayıcıda 3 MB görünse bile, yalnızca HTML’i indiren bir betik çok daha azını harcar. Başarısız denemelerin ve yönlendirmelerin kotadan nasıl düşüldüğünü katalog belirtmez; bunu pilot sırasında panelden doğrulayın ve hesabı temkinli yapın. Hesabı yanıt başına ölçülen gerçek bayt üzerinden yapın, tahmin üzerinden değil.
| Paket | Fiyat | GB başına maliyet | Not |
|---|---|---|---|
| 2 GB | 2,50 USD | 1,25 USD | Pilot ve doğrulama için; üretim için küçük |
| 10 GB | 12 USD | 1,20 USD | Birkaç yüz sayfalık ilk gerçek ölçüm |
| 20 GB | 24 USD | 1,20 USD | Haftalık küçük izleme işleri |
| 50 GB | 60 USD | 1,20 USD | Aylık orta ölçekli toplama |
| 100 GB | 120 USD | 1,20 USD | Aylık yoğun veya çok hedefli iş |
Tabloya bakınca 2 GB’lık paket dışında GB başına maliyetin sabit olduğunu görürsünüz. Bu, “büyük paket alırsam indirim kazanırım” beklentisini ortadan kaldırır ve karar kriterini sadeleştirir: ihtiyacınızı doğru tahmin edin, gereksiz kota satın almayın. Bayt tüketimini düşürmenin yolları ise tamamen sizin tarafınızdadır: yalnızca gerekli sayfaları çekmek, görsel ve betik dosyalarını istememek, değişmeyen sayfaları atlamak ve yeniden denemeleri sınırlamak.
Oturum gerektiren akışlarda static seçimi
Her iş her istekte yeni adres istemez. Giriş yapılmış bir panelden rapor çekmek, sepeti birkaç adım boyunca takip etmek veya hesaba bağlı bir listeyi sayfa sayfa gezmek, oturum boyunca aynı çıkış adresini gerektirir. Adres oturumun ortasında değişirse hedef bunu şüpheli bir oturum değişikliği olarak değerlendirebilir ve oturumu sonlandırabilir. Bu tür işlerde rotating havuz yanlış araçtır.
Katalogda rotating IPv4 ürününün özellikleri arasında sticky veya rotating oturum senaryolarına uyum yazıyor. Sticky davranışın ayrıntıları, yani süresi ve nasıl seçildiği, ürün sayfasında yer almıyor; sipariş adımında ve panelde kontrol edin, varsayımla plan yapmayın. Oturumun saatlerce veya günlerce aynı adreste kalması gerekiyorsa static ürün daha öngörülebilirdir.
| Akış | Oturum gerekir mi? | Daha uygun ürün | Gerekçe |
|---|---|---|---|
| Herkese açık kategori sayfalarını gezmek | Hayır | Rotating IPv4 | Her istek bağımsız; adres çeşitliliği yük dağılımına yardım eder |
| Giriş yapılmış panelden günlük rapor çekmek | Evet | Static IPv4 | Aynı adres, aynı çerez, tutarlı kimlik |
| Yerel fiyat karşılaştırması, ülke başına birkaç sayfa | Kısa süre | Rotating IPv4, ülke seçimiyle | Kısa oturum yeterli; ülke doğruluğu kritik |
| Hesaba bağlı liste veya favoriler | Evet | Static IPv4 | Hesabın alışılmış konumundan görünmesi önemli |
| Çok sayıda adres isteyen, IPv6 kabul eden hedef | Hayır | Rotating IPv6 (port bazlı) | Hedefin IPv6 desteğini önce test edin |
Static ürünler aylık adet bazlı satıldığı için bütçe hesabı farklıdır: Türkiye lokasyonunda 1 adet 2,25 USD, 10 adet 22,50 USD aylıktır. Diğer ülkelerde katalogdaki başlangıç paketi 5 adet 17,50 USD’dir; ABD ve Almanya için 10 adet 34 USD, 50 adet 170 USD, 100 adet 340 USD olarak yayınlanır. Bu fiyatlar paket başına aylık maliyeti verir; GB hesabı yapmanız gerekmez. Trafik veya bağlantı sınırları katalogda belirtilmediği için bunları sipariş adımında kontrol edin.
Hesap güvenliği ve kimlik tutarlılığı
Hesaba bağlı bir akışta aynı hesabı farklı ülkelerden sürekli ziyaret etmek, kullanıcı açısından da şüpheli görünür. Hesabın normal olarak hangi ülkeden kullanıldığını belirleyin ve o ülkede static bir adres seçin. Hesabın sahibinin açık izni olmadan başkasının hesabında oturum açmak ise hiçbir proxy türüyle meşru olmaz; bu kapsam dışıdır.
Dört residential ailesini iş yüküne eşlemek
ResidentialProxy kataloğu dört aileden oluşur. Hangisinin hangi işe uyduğunu, hedefin tepkisine ve faturalama biçimine bakarak seçin. Aşağıdaki tablo yalnızca katalogdaki bilgileri ve bunlardan türetilmiş sonuçları içerir; teknik ayrıntılar için sipariş adımını ve paneli kontrol edin.
| Ürün | Katalog bilgisi | Scraping’de ne zaman düşünülür | Dikkat |
|---|---|---|---|
| Rotating IPv4 | GB bazlı, 2–100 GB paketler, 180+ lokasyon kapsamı notu | Herkese açık sayfaların seyrek ve düzenli taranması | Kota hesabı; başarısız isteklerin kotadan nasıl düşüldüğünü panelde doğrulayın |
| Rotating IPv6 | Port bazlı aylık: 1 port 29 USD, 5 port 80 USD, 10 port 175 USD; Türkiye | Hedef IPv6 kabul ediyorsa ve GB yerine port modeli isteniyorsa | Hedefin IPv6 desteği şart; yalnızca Türkiye lokasyonu yayınlanıyor |
| Static IPv4 | Aylık, Türkiye’de 1–100 adet, 12 ülkelik liste | Oturumlu ve hesaba bağlı akışlar | İspanya listede var, doğrulanmış paketi henüz yok |
| Static IPv6 | Aylık, 100–10.000 adet, Türkiye, ISP etiketi, sınırsız bant genişliği | Çok adres gerektiren, IPv6 kabul eden hedefler | IPv4 isteyen hedeflerde işe yaramaz |
Port bazlı modelin matematiği farklıdır. Rotating IPv6’da 1 port 29 USD, 5 port 80 USD, yani port başına 16 USD; 10 portta 175 USD, port başına 17,50 USD. Burada 5 port, 10 porttan port başına daha ucuzdur. GB bazlı rotating IPv4 ile karşılaştırırken aktarım hacmini port sayısına çevirmeniz gerekir; bu çeviri hedefin IPv6 desteğine ve eşzamanlılık beklentinize bağlıdır, bu yüzden pilot ölçüm olmadan karar vermeyin.
Senaryo: üç ülkede ilan sayfası izleme ve aylık maliyet
Varsayalım bir ekip, üç ülkedeki bir ilan platformunun herkese açık kategori sayfalarını haftada bir izliyor ve platformun robots.txt dosyası bu yolları taramaya izin veriyor. Aşağıdaki rakamlar tamamen varsayımdır; amacı hesap yöntemini göstermektir. Kendi hedefinizde ölçtüğünüz değerlerle değiştirin.
| Kalem | Değer | Hesap |
|---|---|---|
| Haftalık sayfa sayısı | 40.000 (varsayım) | Üç ülke toplamı |
| Yanıt başına ortalama boyut | 0,12 MB (varsayım) | Yalnızca HTML; görsel ve betik istenmiyor |
| Haftalık veri | 4,8 GB | 40.000 x 0,12 MB |
| Aylık veri (4 hafta) | 19,2 GB | 4,8 x 4 |
| Yeniden deneme payı | %15 (varsayım) | 19,2 x 1,15 = 22,08 GB |
| Alınacak paket | 20 GB + 10 GB | 24 USD + 12 USD = 36 USD |
| Süre kontrolü | İstekler arası 4 sn (varsayım) | Tek akışta 40.000 x 4 sn yaklaşık 44,4 saat; üç hedefe paralel bölününce hedef başına yaklaşık 14,8 saat |
Aynı işi sayfaların tamamını görsel ve betikle indirerek yapsaydınız (varsayım olarak sayfa başına 3 MB), haftalık veri 120 GB, aylık 480 GB olurdu. GB başına 1,20 USD ile bu hacim yaklaşık 576 USD’ye karşılık gelir. Aradaki fark, sadece gerekli baytı çekmenin ne kadar belirleyici olduğunu gösterir. Ayrıca bu senaryoda çalışmayı hedefin sakin saatlerine yaymak, hem yanıt süresini hem de hatalı yanıt oranını iyileştirir.
Oturumlu bir iş eklerseniz tablo değişir. Örneğin hesaba bağlı bir panelden günlük rapor çekmek için Türkiye lokasyonunda 3 static adres gerekiyorsa, 1 adetlik paketten üç tane almak aylık 3 x 2,25 = 6,75 USD eder (alternatif olarak 5 adetlik paket 11,25 USD) ve GB hesabı bu kalemde devreye girmez. İki yaklaşımı aynı bütçe tablosunda göstermek, ekip içinde “neden bu işe rotating, şuna static” tartışmasını kısaltır.
Hukuki ve etik çerçeve
Teknik olarak mümkün olan her şey hukuken ve sözleşme açısından uygun değildir. Scraping işine başlamadan önce üç belgeyi okuyun: hedefin kullanım koşulları, robots.txt dosyası ve varsa API şartları. Kullanım koşulları otomatik erişimi yasaklıyorsa, residential çıkış bu yasağı kaldırmaz; yalnızca ihlalin teknik olarak fark edilmesini zorlaştırır. Bu tür bir kullanımı biz de desteklemiyoruz.
Kişisel veri ayrı bir başlıktır. Kişileri tanımlayabilen veriyi, yani ad, e-posta, telefon, profil içeriği gibi alanları toplamak; Türkiye’de KVKK, Avrupa’da GDPR kapsamında ayrı yükümlülükler doğurur. Veri sorumlusu sizseniz hukuki dayanak, saklama süresi ve aydınlatma gibi konuları işin başında netleştirin. Fiyat, stok, kategori sayısı, kamuya açık yayın tarihi gibi kişisel olmayan alanlarla çalışmak bu açıdan çok daha sadedir.
Giriş yapılmış alanlar da dikkat ister. Hesabın sahibi sizseniz ve koşullar izin veriyorsa kendi verinizi çekebilirsiniz. Başkasının hesabına izinsiz girmek, yetkisiz erişim kapsamındadır. İşiniz bir şirket adına yapılıyorsa hukuk veya uyum ekibinin bu çerçeveyi önceden onaylaması, sonradan düzeltmeye göre çok ucuzdur.
Hata → neden → çözüm: korumalı hedeflerde sık görülen sorunlar
| Hata | Olası neden | Çözüm |
|---|---|---|
| 407 Proxy Authentication Required | Kullanıcı adı veya şifre hatalı, ya da bağlantı bilgisi eski | Bilgileri panelden yeniden kopyalayın; boşluk ve özel karakter kaçışlarını kontrol edin |
| 429 Too Many Requests | Hedefin hız sınırını aştınız | Eşzamanlılığı düşürün, Retry-After süresine uyun, aralığı artırın |
| 403 ama tarayıcıdan açılıyor | Hedef bu ağ türünü veya davranışı reddediyor | Önce hızı ve başlıkları gözden geçirin; sonra tek istekte residential çıkışı deneyin |
| 200 ama boş veya kısa sayfa | Yumuşak engel ya da içerik yüklenmedi | Yanıt boyutu ve beklenen alan kontrolü ekleyin; boş yanıtı başarı saymayın |
| Oturum birkaç istekte kopuyor | Çıkış adresi oturum sırasında değişiyor | Static seçin ya da sticky davranışı panelde doğrulayın |
| Bağlantı zaman aşımı | Gateway adresi veya port yanlış, ya da hedef yanıt vermiyor | Panelden gateway ve port bilgisini yeniden alın; hedefe başka bir yoldan erişimi test edin |
| Kota beklenenden hızlı bitiyor | Görsel/betik indirme, çok yeniden deneme veya yönlendirme zinciri | Bayt sayacını loglayın; yalnızca gerekli kaynakları isteyin, yeniden denemeyi sınırlayın |
| IPv6 çıkışta hedefe ulaşılamıyor | Hedef IPv6 desteklemiyor | IPv4 ürüne geçin; hedefi önce IPv6 ile tek istekte test edin |
Her hatayı aynı şekilde yeniden denemek en sık yapılan hatadır. 407 yeniden denemeyle düzelmez; kimlik bilgisi sorunudur. 429 hemen yeniden denemeyle daha da kötüleşir; beklemek gerekir. Zaman aşımı birkaç kez denenebilir ama sınırsız değil. Hata sınıfına göre ayrı davranış tanımlamak, hem kotayı hem hedefin sabrını korur.
Pilot: ilk on gün için adım adım plan
Pilot, harcamanın ve riskin küçük kaldığı dönemdir. Amaç tam ölçekli veri toplamak değil, hedefin tepkisini ve gerçek bayt maliyetini öğrenmektir. Aşağıdaki sıra ilk on günü kapsar ve her adımın bir çıktısı vardır.
- Gün 1: Hedefin robots.txt ve kullanım koşullarını okuyun, sonucu kısa bir izin notuna yazın.
- Gün 2: Referans sayfaları elle belirleyin: beklenen alanlar, yaklaşık boyut, ülke farkı.
- Gün 3: 2 GB’lık paketle (2,50 USD) tek akışlı, düşük hızlı bir deneme çalıştırın; her yanıtın boyutunu ve durum kodunu kaydedin.
- Gün 4: Kayıtları inceleyin: boş yanıt oranı, yanıt süresi dağılımı, ortalama bayt.
- Gün 5: Yumuşak engel belirtisi varsa hızı düşürün ve aynı denemeyi tekrarlayın.
- Gün 6: Oturumlu akış varsa static bir adresle ayrı bir deneme yapın.
- Gün 7: Ölçülen ortalama bayttan aylık kota tahmini çıkarın ve yeniden deneme payını ekleyin.
- Gün 8: Gerekli paketi seçin: GB için 10, 20, 50 veya 100 GB; oturumlu iş için static adet.
- Gün 9: Alarm kurallarını yazın: yanıt boyutu eşiği, 429 oranı, kalan kota.
- Gün 10: Üretim çalışmasını küçük bir hedef alt kümesiyle başlatın ve ilk haftanın kayıtlarını gözden geçirin.
Pilotun sonunda iki sayı elinizde olmalı: hedef başına sürdürülebilir hız ve sayfa başına gerçek bayt. İkisini de yazılı tutun; hedefte bir değişiklik olduğunda bu kayıtlar karşılaştırma noktanız olur.
Üçüncü günde tek bir sayfayı komut satırından denemek, betik yazmadan önce çıkışın çalıştığını doğrular. Aşağıdaki örnekte yalnızca yanıt kodunu, indirilen boyutu ve toplam süreyi yazdırıyoruz; böylece hem bağlantıyı hem de sayfa başına bayt değerini aynı komutla görürsünüz. Çıkış adresini görmek için panelde belirtilen yöntemi kullanın.
curl -s -o /dev/null \
-x http://KULLANICI:ŞİFRE@GATEWAY:PORT \
-A 'ornek-veri-toplayici/1.0 (iletisim: [email protected])' \
-w 'kod=%{http_code} bayt=%{size_download} sure=%{time_total}\n' \
HEDEF_URL/kategori/1Aynı komutu proxy olmadan (kendi bağlantınızla ya da veri merkezi çıkışınızla) ve residential çıkışla birer kez çalıştırın, iki satırı karşılaştırın. Bayt değeri belirgin biçimde farklıysa, ağ türünün hedefin cevabını değiştirdiğine dair güçlü bir işarettir; farklı değilse residential pakete para harcamanın gerekçesi zayıftır.
Üretime geçmeden önce kontrol listesi
- Hedefin robots.txt ve kullanım koşulları okundu; otomatik erişim yasaklı değil.
- Resmi API veya veri akışı seçeneği araştırıldı ve gerekçesi kaydedildi.
- Kişisel veri toplanıyorsa KVKK/GDPR dayanağı ve saklama süresi belirlendi.
- User-Agent işinizi ve iletişim adresinizi içeriyor.
- Hedef başına eşzamanlılık ve istekler arası süre tanımlı; Retry-After ve Crawl-delay okunuyor.
- Yanıtlar durum koduna ek olarak boyut ve beklenen alanlarla doğrulanıyor.
- Başarısız istekler dahil bayt tüketimi loglanıyor ve kalan kota için alarm var.
- Hata sınıflarına göre ayrı yeniden deneme kuralı uygulanıyor; 407 ve 403 sonsuz denenmiyor.
- Oturumlu akışlar static adresle, herkese açık sayfalar rotating çıkışla ayrılmış.
- IPv6 ürün düşünülüyorsa hedefin IPv6 desteği tek istekle doğrulandı.
- Ülke seçimi, verinin beklenen pazarla eşleştiği kontrol edilerek yapıldı.
- Hedef sahibinden gelebilecek bir durdurma talebine cevap verecek bir sorumlu belirlendi.
Liste kısa görünse de her madde bir kararı temsil eder. Özellikle ilk ikisi, geri kalan her şeyin zeminidir: izin yoksa ya da resmi bir yol varsa ileri adımların anlamı kalmaz. Hazır olduğunuzda katalogdaki paketleri ürün sayfalarından inceleyebilir, bağlantı ayrıntılarını panelden doğrulayabilirsiniz.
