Bir ilan verisi programı içeride ne yapıyor? İstek tabanlı kazıma ile gerçek tarayıcı oturumu üzerinden otomasyonun farkı, sayfa bekleme mantığı ve bunların çıktı kalitesine etkisi.
Bir ilan verisi programı satın almadan önce insanların gerçekten merak ettiği soru şu: bu şey içeride ne yapıyor? Türkçe kaynaklarda bu sorunun cevabı ya hiç yok ya da ürün tanıtımının içine gömülmüş birkaç cümleden ibaret. Oysa cevabı bilmek işinize yarar; çünkü programın hangi yöntemle çalıştığı, çıktınızın ne kadar dolu geleceğini, hangi durumlarda boş hücre göreceğinizi ve arayüz değiştiğinde ne olacağını doğrudan belirler. İki temel yaklaşım vardır ve ikisi çok farklı şeyler yapar Veri toplama araçlarının neredeyse tamamı iki aileden birine girer. Birincisi istek tabanlı kazıma, ikincisi gerçek tarayıcı oturumu üzerinden otomasyon. İsimler teknik duruyor ama aradaki fark gündelik dille anlatılabilir: birincisi siteyle doğrudan konuşmaya çalışır, ikincisi zaten sizin yaptığınız tıklamaları sizin oturumunuzda tekrarlar. İstek tabanlı kazıma: siteyle doğrudan konuşmak Bu yöntemde program bir tarayıcı açmaz. Sunucuya doğrudan bir sayfa isteği gönderir, karşılığında gelen ham metni alır ve içinden aradığı bilgileri ayıklar. Hızlıdır, az kaynak tüketir, aynı anda çok sayıda istek gönderebilir. Sorun şurada başlar: modern sitelerin büyük bölümünde sayfa içeriğinin bir kısmı, siz sayfayı açtıktan sonra tarayıcının çalıştırdığı kodlarla oluşur. İstek tabanlı bir araç bu kodları çalıştırmadığı için o içeriği hiç görmez. Sonuç, elinizde yarısı boş bir tablo olmasıdır: başlık gelir, fiyat gelir, ama detay tablosundaki alanlar boş kalır. Üstelik bu yöntem çok sayıda hızlı isteği arka arkaya gönderdiği için karşı taraf açısından da olağan bir kullanım davranışı değildir. Gerçek tarayıcı oturumu: kendi tıklamalarınızı tekrarlamak İkinci yaklaşımda program gerçek bir tarayıcı penceresi açar. Siz o pencerede kendi hesabınızla oturum açarsınız, aramanızı platformun kendi filtreleriyle daraltırsınız ve ekranda gördüğünüz liste ne ise program da onu görür. Program sayfayı yükler, içerik oluşana kadar bekler, ekrandaki kartları okur, sonraki sayfa düğmesine basar ve aynı işi tekrarlar. Yani sizin elinizle yapacağınız işi, sizin oturumunuzda, sizin yetkinizle yapar. Yavaştır; her sayfa gerçekten yüklendiği için beklemek zorundadır. Buna karşılık ekranda görünen her şeyi okuyabilir, çünkü içerik zaten oluşmuştur. Ölçüt İstek tabanlı kazıma Tarayıcı oturumu otomasyonu Hız Çok hızlı Sayfa yüklenme süresine bağlı Dinamik yüklenen içerik Çoğu zaman göremez Ekranda ne varsa okur Oturum gerektiren liste Ayrıca çözülmesi gerekir Zaten sizin oturumunuzda Kaynak tüketimi Düşük Tarayıcı açık olduğu için yüksek Davranış profili Yığın istek, insan temposuna uzak Sayfa sayfa, insan temposuna yakın Arayüz değişikliğine tepki Ayıklama kuralı bozulur Okuma kuralı bozulur, belirti aynıdır Program bir sayfada bilgiyi nasıl buluyor İki yöntemde de ortak olan bir aşama var: sayfadaki bir bilginin nerede durduğunu tarif etmek. Tarayıcı, açtığınız sayfayı iç içe kutulardan oluşan bir ağaç gibi tutar. Bir ilan kartı bu ağaçta bir kutudur; içinde başlık kutusu, fiyat kutusu, konum kutusu bulunur. Program "ilan kartlarının listesindeki her kartın içindeki fiyat kutusunu al" biçiminde bir tarif alır ve bunu her kart için tekrarlar. Bu tarife seçici denir. Buradan iki pratik sonuç çıkar. Birincisi, ekranda görünmeyen bir bilgiyi program da göremez; kartta ısıtma tipi yazmıyorsa o alan ancak ilanın detay sayfasına girilerek alınabilir. İkincisi, sayfanın yapısı değişirse tarif de eskir. Bu, kötü yazılmış bir programın işareti değil, bu işin doğasındaki bakım kalemidir. Belirtisi de nettir: satırlar gelmeye devam eder ama bir veya birkaç sütun tamamen boş kalır. Tek sütun boşsa, tüm tarama bozuk değildir Bütün satırların gelip yalnızca bir sütunun boş kaldığı durum, o alanın okuma kuralının eskidiğine işaret eder. Taramayı baştan başlatmak yerine önce güncel sürümü kontrol etmek, aynı işi iki kez yapmanızı önler. Beklemek neden bir kalite meselesi Sayfa açıldığı anda içeriğin tamamı hazır değildir. Kartlar sırayla belirir, görseller sonradan yüklenir, bazı alanlar en son gelir. Program okumaya çok erken başlarsa var olan bilgiyi bulamaz ve o hücreyi boş yazar. Bu yüzden ciddi bir otomasyon akışında "iki saniye bekle" gibi sabit bir gecikme yerine, aranan öğe ekranda belirene kadar bekleyen bir mantık kullanılır. Öğe geldiğinde hemen devam edilir, gelmezse belirli bir süre sonra o sayfa atlanır ve kayda alınır. Bekleme süresini kısaltmak taramayı hızlandırır ama boş hücre oranını artırır. Kendi işinizde bunun hesabını yapabilirsiniz: 300 ilanı detaylı toplarken ilan başına 6 saniye beklemek yaklaşık 30 dakika demektir. Süreyi 3 saniyeye indirip 15 dakikaya düşürdüğünüzde kazandığınız çeyrek saatin bedelini, sonradan elle doldurmanız gereken boş hücrelerle ödersiniz. Genellikle kârlı bir takas değildir. Sayfalama: listenin sonuna nasıl gelinir Bir arama sonucu tek sayfada bitmez. Program listenin sonunu üç yoldan biriyle anlar: sonraki sayfa düğmesi artık tıklanabilir değildir, gelen sayfada hiç kart yoktur, ya da baştan belirlediğiniz sayfa sınırına ulaşılmıştır. Üçüncüsü göründüğünden önemlidir; sınırsız tarama başlatmak yerine sayfa sınırı koymak, yanlış filtreyle başlatılmış bir taramanın saatlerinizi almasını engeller. Sayfalamanın bilinen bir yan etkisi vardır: siz toplarken listeye yeni ilan girerse sıralama kayar ve bir ilan iki farklı sayfada görünebilir. Bunun çözümü tarama tarafında değil, çıktı tarafındadır. İlan numarası benzersiz olduğu için dosyada bu sütuna göre yinelenenleri kaldırmak sorunu tamamen çözer. İnsan temposu bir kısıt değil, bilinçli bir ürün kararı Teknik olarak istekleri sıklaştırmak mümkündür. Ama iyi tasarlanmış bir otomasyon bunu yapmaz ve bunun iki nedeni vardır. Birincisi çıktı kalitesidir: yüklenmemiş sayfadan okunan veri eksik gelir. İkincisi karşı tarafın kaynaklarına saygıdır; bir platform herkesin kullanımı için ayakta durur ve tek bir kullanıcının olağandışı yükü herkesi etkiler. Bu yüzden istekler arasında bekleme bırakmak, sayfa sayfa ilerlemek ve tek oturumda aşırı geniş taramalar yapmamak, kısıtlanmışlık değil olgunluk göstergesidir. Bir veri toplama akışının kalitesi ne kadar hızlı topladığıyla değil, topladığı satırların kaçının tekrar kontrol gerektirmediğiyle ölçülür. En sık karşılaşılan üç belirti ve nedeni Belirti Muhtemel neden Ne yapmalı Satırlar geliyor, bir sütun tamamen boş O alanın okuma kuralı eskimiş Güncel sürümü kontrol edin, taramayı baştan başlatmayın Bazı satırlarda alanlar boş, bazılarında dolu Sayfa tam yüklenmeden okuma yapılmış Bekleme süresini artırın, boş satırları yeniden tarayın Aynı ilan birden fazla satırda Tarama sırasında liste sıralaması kaymış İlan numarasına göre tekilleştirin Beklenenden çok az satır Filtre daralmış ya da sayfa sınırına takılmış Filtreyi ve sayfa sınırını kontrol edin Fiyat sütununda hesap yapılamıyor Değer metin olarak yazılmış Sayısal alan ayarını açın veya sütunu sayıya çevirin Hukuki çerçeve teknik tercihi de belirler Tarayıcı oturumu üzerinden çalışmanın tercih edilmesinin bir nedeni de budur. Bu yaklaşımda program, sizin zaten görüntüleme yetkiniz olan herkese açık listeleri, sizin hesabınızla okur. Erişim engeli aşmaya, kapalı içerik açmaya ya da platformun koyduğu sınırları dolanmaya yönelik bir işlev devreye girmez. Bunun ötesinde iki sorumluluk sizde kalır: platformun kullanım şartları zaman içinde değişebilir ve bağlayıcıdır; topladığınız veri kişisel veri niteliği taşıyorsa KVKK yükümlülükleri devreye girer. Amaç belirlemek, gereğinden fazla alan toplamamak, saklama süresi tanımlamak ve veriyi güvenli tutmak bu yükümlülüklerin somut karşılığıdır. Pratik ölçü Bir alanı raporunuzda kullanmayacaksanız hiç toplamayın. Bu hem KVKK'nın ölçülülük ilkesine uygun davranmanın en kolay yolu, hem de çıktı dosyanızı küçük ve hızlı tutmanın en etkili yöntemidir. Özetle: hangi soruları sormalısınız Program gerçek bir tarayıcı oturumu üzerinden mi çalışıyor, yoksa doğrudan istek mi gönderiyor? Kartta görünmeyen alanlar için detay sayfasına giriyor mu, girmiyorsa o sütunlar boş mu kalacak? Sayfa yüklenmesini bekliyor mu, bekleme süresini ayarlayabiliyor muyum? Sayfa sınırı koyabiliyor muyum, yanlış filtreyle başlatılan tarama yarıda durdurulabiliyor mu? Fiyat, metrekare, kilometre gibi alanları sayısal tipte mi yazıyor? Arayüz değiştiğinde güncelleme nasıl geliyor? Bu altı sorunun cevabını bilen biri, bir veri toplama aracını demolara bakmadan da değerlendirebilir. İçeride olan bitenin sırrı yok; sadece nadiren açıkça anlatılıyor.
Çünkü her sayfayı gerçekten yükler ve içeriğin oluşmasını bekler. İstek tabanlı bir araç bu adımı atladığı için hızlıdır ama sonradan oluşan içeriği göremez. Yavaşlık burada bir kusur değil, dolu bir tablo elde etmenin bedelidir.
Otomasyon kendi tarayıcı penceresinde çalışır; o pencereye müdahale etmediğiniz sürece başka işler yapabilirsiniz. Ancak pencereyi kapatmak, oturumu sonlandırmak ya da bilgisayarı uyku moduna almak taramayı yarıda keser.
İki nedeni olabilir. Ya o alan ilan sahibi tarafından hiç girilmemiştir, ya da program o alanı liste sayfasından okumaya çalışıyordur ama alan yalnızca detay sayfasında bulunur. İkincisini ayırt etmek için birkaç ilanın bağlantısını açıp alanın gerçekten dolu olup olmadığına bakın.
Genellikle hayır. Değişiklik belirli alanları etkiler; tarama devam eder ama etkilenen sütunlar boş gelir. Tamamen durma durumu daha çok liste yapısının kökten değişmesinde görülür. Her iki halde de çözüm okuma kurallarının güncellenmesidir.
Nadiren. İlan havuzu gün içinde çok az değişir; aynı listeyi sık taramak size yeni bilgi vermez, buna karşılık gereksiz yük oluşturur. Fiyat hareketi izliyorsanız günde bir tarama çoğu senaryo için fazlasıyla yeterlidir.
Bu, kullanım amacınıza ve platformun güncel kullanım şartlarına bağlıdır. Piyasa analizi için kendi içinizde kullanmak ile veriyi üçüncü taraflara sunmak farklı durumlardır. Kişisel veri içeren alanlar söz konusuysa KVKK yükümlülükleri de eklenir; ticari bir kullanım planlıyorsanız güncel şartları okuyup gerekiyorsa hukuki görüş almanız yerinde olur.