İçeriğe atla
AutoValue
28 Ağustos 2026 · Data Quality

Sayım Sınırlarımızı Zorladığımız Yaz: Crawler'ın İçinden Bir Günlük

AutoValue Editorial
Sayım Sınırlarımızı Zorladığımız Yaz: Crawler'ın İçinden Bir Günlük

Çoğu gün açık tuttuğum bir sekme var; sadece kaynak sayılarını gösteriyor. Süslü bir şey değil — grafik yok, filtre yok, sadece listeleri çektiğimiz 1.375 sitenin her birinin yanında bir sayı ve her birinin en son ne zaman yanıt verdiğini gösteren bir zaman damgası. Çoğu gün, altyapının olması gerektiği kadar sıkıcı geçer. Bu yaz öyle geçmedi ve neyin ters gittiğinin hikâyesinin, araba almaya çalışan biri olarak sana, yazabileceğimiz çoğu "ikinci el araba nasıl alınır" tavsiyesinden daha faydalı olacağını düşünüyorum. Mesele şu: kaynağı besleyen şey sana hiçbir şey borçlu olmayan 1.375 ayrı web sitesi olduğunda "canlı veri" gerçekte ne anlama gelir.

Temmuz ortası: gurur duyduğum sayı

Temmuz ortasına gelindiğinde kaynak kayıt defterimizi 73 bölgede 1.190 kaynağa çıkarmıştık — bu, kendi sayımızı sessizce şişiren yinelenen kayıtları ve ölü bağlantıları haftalarca uğraşarak ayıklamamızın sonucuydu. 1.190 gerçek, yanıt veren kaynağın gurur duyulacak bir şey olduğunu düşündüğümü hatırlıyorum. Bu, her birinin kendi HTML yapısı, kendi hız sınırları, bir scraper'ın müşteri mi yoksa saldırgan mı olduğuna dair kendi görüşü olan çok sayıda bireysel bayi sitesi, ilan panosu ve açık artırma akışı demek.

Sonra aylardır ertelenmiş, bir kısmı engellenmiş, bir kısmı hiç kurulmamış 683 kaynaklık bir bekleme listesini işlediğimiz bir birikim kampanyası meyvesini vermeye başladı. Temmuz'un ikinci yarısında bunlardan 274'ü kuruldu ve sisteme bağlandı. Ay sonunda çalışan kaynak sayısı 1.464'e çıkmıştı. Böyle bir haftanın ekran görüntüsünü alırsın.

Ağustos başı: 241 kaynak, yok oldu

Sonra haftanı mahveden sayı geldi: bir gecede 241 kaynak bozulmuş bir duruma düştü. Bizim yaptığımız bir şey yüzünden değil — proxy sağlayıcımızın hesabı fatura tarafında süresi dolmuştu ve trafiğimizin büyük bir kısmı, scraper'ları hız sınırlayan sitelerce engellenmemek için özellikle dönen IP'ler üzerinden yönlendiriliyor. Proxy yoksa, taze sayfa yok, taze ilan yok. Kaynaklar bozulduklarını duyurmuyor; sadece eski ilanları güncelmiş gibi dururken sessizce yeni veri döndürmeyi bırakıyorlar.

İşte bu kısım, kendisine bakmadıkça hiçbir araba sitesindeki -bizimki dahil- ilan sayısında görünmeyen bir şey: "canlı" bir pazar yeri, bayat satırları taze olanların yanında barındırabilir ve dışarıdan tamamen aynı görünebilir. Ölü bir havuzun kaliteyi sessizce daha da bozmaması için yeni crawl gönderimlerini gerçek bir proxy sağlık kontrolüne bağladık ve programın durumu kötüleştirecek kısımlarını durdurduk. Göz alıcı bir iş değil bu. Hiç haberini duymadığında, birinin işini yaptığı anlamına gelen türden bir iş.

Açık söylemekte fayda var: her gün sabit, yuvarlak bir ilan sayısı iddia eden herhangi bir site ya gerçekten canlı değildir ya da böyle haftalar hakkında sana bir şey söylemiyordur.

Donma

Proxy yenilemesi sorunun çoğunu çözdü. Beklemediğim şey, birkaç hafta sonra crawler'ın kendisinin kilitlenmesiydi — bir teardown kilitlenmesi (deadlock), on dokuz worker thread'inden on sekizi futex_wait durumunda, sıfır CPU harcanarak, kesintisiz 75 saat boyunca. Ne çökme, ne kimseye bağıran bir hata kaydı. Sadece... hiçbir şey olmuyordu, gösterge paneli ise son başarılı geçişi sanki güncelmiş gibi göstermeye devam ediyordu. O belirli sunucuya henüz bir watchdog kurmamıştık; bu, ancak anlattığı şey başına bir kere geldikten sonra yazabileceğin türden bir cümle.

Watchdog'u kurduk. Proxy yenilemesinin istikrarlı olduğu doğrulanana kadar programı duraklattık; yarı bozuk bir crawl'ın iyi satırları sessizce kötüleriyle değiştirmesi riskini almak istemedik — crawl edilen bir kaynağın ilanları değiştirilir, birleştirilmez, yani kötü bir geçiş sadece veri eklemekte başarısız olmakla kalmaz, iyi satırları etkin biçimde silip yerine daha kötülerini koyabilir. Bir gün bayat veriyle çalışmayı, bozuk veriyle çalışmaya tercih etmemizin sebebi de bu asimetri.

Sayı nereye vardı

İşte bugünkü sayı ve bizi buraya getiren altı haftanın seyri:

73 bölgede 1.375 kaynakla, 1.108.535 canlı ilanı besleyerek ve şu anda 12.823 tanesi bölgesel emsallerinin altında fiyatlandırılmış olarak işaretlenmiş durumda kaldık. Bu, Temmuz zirvesinden yaklaşık 90 kaynak daha az — bozulan 241 kaynaktan bazıları hiçbir zaman tam olarak geri dönmedi, birkaçı ise bu süre zarfında bot karşıtı duruşunu değiştirmiş, yeniden bağlanmak yerine yeniden kurulması gereken sitelerdi. Bunların birkaçı üzerinde hâlâ çalışıyoruz.

Bunun senin için gerçek değeri ne

Bunların hiçbiri hangi arabayı alman gerektiğini değiştirmiyor. Ama sadece bizimki değil, herhangi bir araba sitesindeki "canlı envanter" sayısını nasıl okuduğunu değiştirmeli. Şu anda bölgesel sayımızın zirvesinde 67.569 ilanla Fransa var, hemen ardından 61.940 ile Japonya geliyor ve bu sayılar hareket ediyor — ikinci el araba piyasasının kendisi bu kadar hızlı dalgalandığı için değil, onu izleyen altyapı öyle olduğu için. Bir kaynak bozulduğu için üç gün bayatlamış bir ilan, platform bu farkı dürüstçe göstermediği sürece tamamen taze bir ilan gibi görünür.

Sana sayımızın hiç sallanmadığını iddia etmektense, 75 saatlik donmadan bahsetmeyi tercih ederiz. Kötü bir haftayı hiç kabul etmeyen bir veri kümesi, daha az değil, daha çok şüphelenmen gereken bir veri kümesidir.

Data QualityWEB ScrapingMethodologyTransparencyMarket Data
Paylaş

İlgili yazılar

Sayım Sınırlarımızı Zorladığımız Yaz: Crawler'ın İçinden Bir Günlük | AutoValue