Web Verisi Toplama Konusunda En İyi Uygulamalar
Bir scraper’ın ilk haftadan sonra da çalışır durumda kalmasını sağlayan kurallar şunlardır: her sunucu için belirlenen bütçelere uymak, daha fazla veri toplamaya çalışmak yerine daha az veri toplamak, tekrar denemelerin birikmemesini sağlamak ve veri kümenizin sessizce boşalmadan önce sizi uyaran tek metrik.
- Sınırsız bant genişliği — önbellekleme ve yeniden taramalar, aylık ücret üzerinde herhangi bir değişiklik yaratmaz.
- İsteğe bağlı döndürme — zamanlayıcı yerine iş sınırında sorunlu bir IP'yi elden çıkarın.
- Özel donanım — blok oluşturma hızınız, bir yabancının davranışını değil, sizin davranışınızı yansıtır.
- Sabit oturumlar — uzun süren işler, başlatıldıkları adreste tamamlanır.
Modem başına faturalandırma yapıldığından, yeniden tarama veya önbellek ıskalaması durumunda ek bir ücret alınmaz.
Blok oranı yükseldiğinde, sizin belirlediğiniz bir sınırda isteğe bağlı olarak döndürün.
Bir kazıyıcıyı çalışır hale getirmek işin kolay kısmıdır. Onu çalışır durumda tutmak — giderek genişleyen bir hedef listesi üzerinde, ilk hız sınırını aştıktan sonra ve veriden daha hızlı artan bir fatura olmadan — bambaşka bir alandır ve esas olarak ölçülü davranmakla ilgilidir. Bu sayfa, kümenin operasyonel kısmını ele almaktadır; proxy’nin kendisinin bağlanması konusu ise mobil proxy ile web veri toplama kılavuzu.
Güvenilir Olan Taksit ve Eşzamanlılık Bütçeleri
Çoğu tarayıcının yapabileceği en yararlı değişiklik, genel bir sınırlama yerine hedef ana bilgisayar başına bir sınır belirlemektir. Sekiz etki alanına yayılmış sekiz paralel istek sıradan bir trafik olarak değerlendirilir; tek bir etki alanına yönelik sekiz istek ise ani bir trafik artışı olarak kabul edilir ve hedef, her zaman yalnızca ikinci sayıyı algılar.
| Kontrol | Mantıklı bir başlangıç noktası | Nasıl ayarlanır? |
|---|---|---|
| Ana bilgisayar başına eşzamanlı istek sayısı | 2 ila 5 | Hata oranı sabit kaldığı sürece artırın; değişir değişmez hemen geri çekilin |
| Toplam işgücü havuzu | Birçok ana bilgisayarda 10 ila 20 | İş hacmi artmaya devam ederken büyümeye devam edin; iş hacmi sabit kaldığında durun |
| Aynı etki alanına yönlendirme gecikmesi | Birkaç saniye; 10 saniye gerçekten nezaketin gereğidir | robots.txt dosyasında Crawl-delay ayarı belirtilmişse, cevap budur — bunu kullanın |
| Uyarlanabilir gaz kelebeği | Evet, ilk günden itibaren | Gecikmeyi sabit bir sabit yerine gözlemlenen gecikme süresi belirlesin |
Uyarlanabilirlik, yukarıdaki herhangi bir spesifik rakamdan daha önemlidir. Hedef yük altında kaldığında hızını düşüren bir tarayıcı hayatta kalır; artan gecikme süresine rağmen sabit bir hızda devam eden bir tarayıcı ise, karşı tarafta hiçbir şeyin gözlemlenmediğini açıkça ortaya koyar.
Başlıklar, Oturumlar ve Parmak İzi Tutarlılığı
Hız sınırlamaları ve önbellekleme, ne sıklıkla sorgu yaptığınızı belirler. İşaretlenmemenin diğer yarısı ise, isteğin iddia ettiği istemciden gelmiş gibi görünüp görünmediğidir — temiz bir IP adresi, gerçek bir tarayıcıya ait olmayan bir başlık kümesini veya TLS el sıkışmasını düzeltmez.
Başlıkları, beyan ettiğiniz kimlikle eşleştirin
Gerçek bir tarayıcı, User-Agent, Accept, Accept-Language, Accept-Encoding ve Sec-Fetch-* başlıklarını sabit bir sırayla gönderir; ayrıca, sunucuya JA3 veya JA4 parmak izi olarak görünen TLS el sıkışma süreci — şifreleme kümesi sırası ve uzantıları — o tarayıcı sürümüne özgüdür. Requests, curl veya node-fetch gibi standart bir HTTP istemcisi bunların hiçbirini sunmaz; üzerine ayarlanan User-Agent dizesine bakılmaksızın kendisini bir komut dosyası olarak tanıtır. Gerçek ve güncel bir tarayıcı ile işletim sistemi kombinasyonu seçin, gerçek başlık kümesini ve sırasını kopyalayın ve istek başına başlıkları rastgele değiştirmek yerine bu kimliği sabit tutun — bir IP adresinden yapılan her istek sırasında değişen bir User-Agent, başlı başına bir sinyaldir.
Bir oturuma, tüm ömrü boyunca tek bir IP adresi atayın
Bir oturum açma işlemi, bir alışveriş sepeti veya sayfalandırılmış bir sonuç kümesi, sitenin gözünde tek bir oturum olarak kabul edilir ve bu iş birimi tamamlanana kadar tek bir IP adresinde kalmalıdır. Çerez havuzu değişmeden kalırken oturumun ortasında IP adresinin değiştirilmesi, birkaç dakika içinde iki farklı IP adresinden gelen bir çerez kümesi oluşturur — bu durum, her iki durumun tek başına değerlendirilmesinden daha net bir işarettir. "Sticky session" özelliğine sahip mobil proxy'ler işte bu amaçla mevcuttur: oturumu görevin gerektirdiği süre boyunca açık tutar ve görevi kesintiye uğratan sabit bir zamanlayıcı yerine, görevin tamamlanmasının ardından IP adresini değiştirir.
- Kullanıcı Aracısı — Kimliğin geçerlilik süresi boyunca sabit kalan, her istek için yeniden düzenlenmeyen tek bir gerçek tarayıcı ve işletim sistemi dizesi
- Başlık kümesi ve sırası — O tarayıcının gerçekte gönderdiği değerlerle eşleşen Accept, Accept-Language ve Sec-Fetch-* başlıkları
- TLS parmak izi — El sıkışma süreci, varsayılan yığının kendi imzası değil, gerçek bir tarayıcınınkiyle eşleşen bir istemci kütüphanesi
- Çerezler ve oturum IP'si — Oturum devam ettiği sürece, aynı IP adresinden gelen her istekte kabul edilir ve yanıtlanır
Bunların hiçbiri gerçek bir proxy’nin yerini tutmaz — ücret ödenen IP adresinin gerçek kimliğini gizleyip gizlemeyeceğine o karar verir.
Daha Az İstek: Önbellekleme ve Koşullu İstekler
Yapmadığınız her istek, engellenemeyen, hız sınırlamasına tabi tutulamayan ve hatalı olamayacak bir istek demektir. Eşzamanlılığı artırmadan önce, daha az veri almak gibi daha az maliyetli bir çözümden yararlanmayı deneyin:
- Daha önce aldığınız verileri önbelleğe alın — Yerel veya paylaşılan önbellek, yeniden çalıştırma işlemini tam bir tarama yerine fark karşılaştırmasına dönüştürür. Dağıtılmış işleyiciler için merkezi bir depo, bunların aynı sayfaları bağımsız olarak yeniden almasını engeller.
- Koşullu istekleri kullanın — Sunucu ETag veya Last-Modified başlığını sunuyorsa, If-None-Match veya If-Modified-Since başlıklarını gönderin. Böylece, değişmemiş bir sayfa için tam içerik yerine 304 yanıtı gönderilir; bu da her iki taraf için de daha az kaynak tüketir.
- Adım adım tarama — Tüm kataloğu belirli bir programa göre yeniden taramak, değişmemiş veriler için blok oluşturmanın klasik yoludur. Kapsamlı taramalar yerine site haritalarını, beslemeleri ve değişiklik algılamayı tercih edin.
- Sayfanın arkasındaki uç noktayı bulun — Oluşturulan sayfalar genellikle doğrudan çağırabileceğiniz dahili bir JSON uç noktasından alınır; bu, sayfayı çevreleyen işaretleme koduna kıyasla daha küçük, daha kararlı ve ayrıştırması daha kolaydır.
- Kuyruğa eklemeden önce yinelenenleri temizle — URL’leri kanonikleştirin ve daha önce görüntülenmiş olanları eleyin. İzleme parametreleri ve oturum tanımlayıcıları, tek bir sayfayı görünüşte birbirinden farklı onlarca isleme dönüştürür.
Sınırsız bant genişliğine sahip proxy'lerde önbelleklemenin gerekçesi aktarım maliyeti değildir; asıl neden, önlenen her isteğin fark edilme olasılığını bir kez daha azaltmasıdır.
Yeniden Denemeler, Hatalı Mesajlar ve Uyarlanabilir Bekleme Süresi
Yeniden denemeler, kibar bir tarayıcının sessizce agresif bir tarayıcıya dönüşmesine neden olur. Üç kural, bunların kurallara uygun çalışmasını sağlar:
- "Retry-After" komutunu uygulayın, ardından üstel olarak geri çekilin
Sunucu ne kadar beklemeniz gerektiğini söylediğinde, işte cevap budur. Eğer söylemezse, sabit bir aralığı tekrarlamak yerine aralığı uzatın — ve eşzamanlı işleyicilerin hepsinin aynı anda uyanmaması ve ani yük artışının tekrarlanmaması için jitter ekleyin.
- Cap denemeleri ve ölü mektup kuyruğunun kullanımı
Beş kez başarısız olan bir URL, size altıncı denemenin de durumu değiştirmeyeceğini gösteriyor. Bütçenizi sonsuza dek tüketerek dolaşımda kalmasına izin vermek yerine, inceleme için bir kenara alın.
- Yeniden denemelerin idempotent olmasını sağlayın
Yeniden deneme işlemi serbestçe gerçekleştirilir; karşı tarafta durumunu değiştiren her şeye dikkat edin. Otomatik yeniden denemeleri GET ve HEAD istekleriyle sınırlamak, güvenli varsayılan ayardır.
IP adresini değiştirip hemen yeniden denemek bir geri çekilme stratejisi değildir. 429 hatası, erişim hızınızla ilgili bir uyarıdır; buna kimlik değiştirerek yanıt vermek, hedefin zaten reddettiği bir hızda birkaç dakika daha kazanmak için adresleri israf etmek anlamına gelir.
Verileriniz Engellenmeden Önce Engellendiğinizi Anlamak
Kazıyıcılar nadiren belirgin bir şekilde arıza verir. Önce 200 durum kodlu hata sayfaları veya düzgün bir şekilde ayrıştırılan boş sonuç kümeleri göndermeye başlarlar; ancak iş akışı günlerce başarı bildirmeye devam eder. Bu özel arıza için izleme aracı:
| Metrik | Bundan ne anlaşılır? | Ne zaman harekete geçmelisiniz? |
|---|---|---|
| Hedef başına blok oranı | Elinizdeki en eski güvenilir işaret | Hiçbir şekilde artmıyor — bu, veri kümenizin hareketinden önce değişiyor |
| Gerekli bir alanın eksik olduğu kayıtlar | HTTP 200 yanıtı veren yumuşak engellemeleri yakalar | Hisse senedi normal seviyesinden uzaklaşıyor |
| 95. persentil tepki süresi | Hedef suş ya da uygulanan enfeksiyon testi | İş hacmi artmazken, bu değer yükseliyor |
| Kuyruk derinliği | İster ayak uyduruyor olun, ister biriktiriyor olun | Tüm parkur boyunca istikrarlı bir şekilde ilerliyor |
Kullanışlı ve ucuz bir ekleme de “kanarya”dır: belirli bir zamanlamaya göre alınmış, doğru olduğu bilinen bir yanıt içeren, doğru olduğu bilinen bir URL. Kanarya beklenmedik bir sonuç vermeye başladığında, sorunun ayrıştırıcıda değil sizde olduğunu anlarsınız ve bunu günün verileri kaydedilmeden önce fark edersiniz.
Blok oranı değiştiğinde, Yaygın kazıma blokları ve bunların nasıl okunacağı Değişikliklere başlamadan önce, sizi engelleyen şeyin ne olduğunu belirlemeyi ele alır.
Özel Bir Veri Toplama Proxy'si Alın
Canlı PXM2 konumları — hedef kitlenizin isteğin hangi ülkeden geldiğini göreceğini seçin ve sınırsız bant genişliği ile rotasyon özelliğine sahip özel bir 4G/5G IP adresi edinin:
Amerika Birleşik Devletleri
Birleşik Krallık
Fransa
Sık Sorulan Sorular
Veri toplama işlemi sırasında aynı anda kaç adet istek gönderebilirim?
Bütçeyi genel olarak değil, hedef ana bilgisayar başına belirleyin. Bir ana bilgisayara yönelik iki ila beş eşzamanlı istek, makul bir başlangıç noktasıdır ve birçok ana bilgisayara yayılmış on ila yirmi işçi havuzu yaygın bir durumdur. İş hacmi artmaya devam ederken ve hata oranı sabit kaldığı sürece havuzu genişletin; iş hacmi artmadan hatalar artmaya başladığı anda, sınırınıza ulaşmışsınız demektir.
İstekler arasında ne kadar beklemeliyim?
If robots.txt publishes a Crawl-delay, use it — that is the operator telling you the answer. Absent one, a delay of a few seconds to the same domain is conservative and rarely wrong, and ten seconds is genuinely polite for a small crawl. Delay matters far less than adaptivity: slowing down when the target signals stress is what keeps a crawl alive.
Engellenmeden nasıl veri toplayabilirim?
Daha az veri alın ve tutarlı bir şekilde hareket edin. Elinizde bulunanları önbelleğe alın, değişmemiş sayfaların hiçbir maliyeti olmaması için koşullu istekler kullanın, tüm kataloğu yeniden taramak yerine aşamalı olarak tarama yapın ve ana bilgisayar başına eşzamanlılık sayısını düşük tutun. Yasaklamaların çoğu, tek bir istekten ziyade hacim ve sıklık nedeniyle uygulanır.
Bir veri toplama iş akışında neleri izlemeliyim?
Her şeyden önce hedef başına blok oranı — bu, verilerinizden önce değişir. Ardından başarı oranı, 95. persentil yanıt süresi, kuyruk derinliği ve gerekli bir alanın eksik olduğu kayıtların oranı gibi bir veri kalitesi kontrolü gelir. Gizlice doğrulama sayfalarını döndüren bir veri toplayıcı, yine de HTTP 200 kodunu ve boş bir sonuç kümesini bildirir.
Proxy'leri dönüşümlü olarak kullanmak mı, yoksa hızı düşürmek mi daha iyidir?
Öncelikle hızınızı azaltın. IP rotasyonu bir kimlik sorununa çözüm getirir; 429 hatası ise bir istek hızı sorunudur ve aynı istek hızını korumak için yeni bir IP’ye geçmek, sadece birkaç dakika daha kazanmak için adresleri tüketmekten ibarettir. Eşzamanlılığı azaltın, Retry-After kuralına uyun ve tek bir IP gerçekten sorun yaratmaya başladığında rotasyona geçin.
İlgili Mobil Proxy Kılavuzları
Bu sayfa, operasyonel disiplini ele almaktadır; kümenin geri kalan kısmı ise bu disiplinin uygulandığı mekanizmaları kapsamaktadır.
Web veri toplama kılavuzları
Temel mobil proxy kılavuzları
Yeniden Taramayı Engellemeyen Proxy'ler
Gigabayt başına değil, dönem başına faturalandırılan özel 4G/5G modemler — önbellekleme, yeniden denemeler ve artımlı taramaların maliyeti, tek geçişle aynıdır.
Bir Kazıma Proxy'si Alın