İçeriğe geç
Kaynak kütüphanesi
GOCUX / Makalelerknowledge

Kazıma API'leri ve tarayıcı araçları: karar vermeden önce neye bakmalı

Kazıma API'leri ve tarama çatıları için seçim rehberi: sayfa işleme, engellenme, çıktı biçimleri, koşullar ve hukuk, bakım, barındırılan ya da kendi sunucunuz.

Demoda bütün kazıma araçları birbirine benzer: bir URL yapıştırırsınız, temiz içerik geri gelir. Farklar bir ay sonra ortaya çıkar; hedef site bir çerez onay duvarı ekler, bir seçici eşleşmeyi bırakır, bir çalıştırma kimse fark etmeden başarısız olur ya da hukuk birimi neyi neden sakladığınızı sorar. Bu rehber, yapay zekâ hatları için bir kazıma API'si ya da tarayıcı (crawler) aracı seçerken sorulacak soruları, aracın ileride de çalışıp çalışmayacağını belirleyen başlıklar altında topluyor: sayfa işleme, engellenme, çıktı biçimleri, koşullar ve hukuk, bakım ve aracı kendiniz barındırıp barındırmayacağınız. Temeller için web kazıma nedir ve web tarayıcısı nedir yazılarıyla başlayın.

Satıcı listesiyle değil, kaynaklarınızla başlayın

Araçlara bakmadan önce işi yazıya dökün. Kısa bir profil yeterlidir:

kaynaklar   tedarikçi fiyat sayfaları (bilinen URL'ler), düzenleyici duyuruları (liste sayfaları)
keşif       bilinen URL'ler; liste sayfalarından bir seviye derinliğe kadar bağlantı izle
işleme      fiyat sayfaları JavaScript ister; duyurular statik HTML
sıklık      fiyatlar günlük, duyurular haftalık
çıktı       erişim için markdown, ayrıca JSON alanları: paket adı, fiyat metni, para birimi
erişim      yalnızca herkese açık sayfalar; oturum açma yok
saklama     çıkarılan metin ve alanlar tutulur; ham HTML yeniden işleme için kısa süre tutulur

Böyle bir profil araçları hızla eler ya da öne çıkarır. Yalnızca bilinen statik sayfaları indiren bir iş, dağıtık bir tarayıcıya ihtiyaç duymaz; bütün siteler boyunca sayfa keşfetmesi gereken bir iş ise duyar. JavaScript gerektiren sayfalar sayfa işleme ister; bu da maliyeti, hızı ve hata biçimlerini değiştirir.

Araçlar birkaç türe ayrılır:

  • Kendiniz çalıştırdığınız tarama çatıları: Scrapy ya da Crawlee gibi; kuyrukları, yeniden denemeleri, nezaket ayarlarını ve işleme hatlarını yönetir.
  • Tarayıcı otomasyon kütüphaneleri: Playwright ve Puppeteer gibi; işleme ya da etkileşim gerektiren sayfalar için gerçek bir tarayıcıyı sürer.
  • Barındırılan kazıma API'leri: bir URL gönderirsiniz, HTML ya da çıkarılmış içerik alırsınız; sayfa işleme ve vekil sunucu yönetimi sağlayıcıdadır.
  • Dil modeli hatlarına yönelik barındırılan içerik hizmetleri: Firecrawl gibi; tek sayfalardan ya da bütün sitelerden markdown veya yapılandırılmış veri döndürür.
  • Kazıyıcı platformları: Apify gibi; başkalarının yazdığı hazır kazıyıcılar dahil, kazıyıcıları barındırır ve zamanlar.

Her satıcının gerçekte neyi desteklediğini güncel belgelerinden kontrol edin. Ürünler değişir; bu liste bir öneri değil, kategorilerin haritasıdır.

Sayfa işleme: tarayıcıya yalnızca gerektiğinde para ödeyin

Düz bir HTTP isteği hızlı, ucuz ve hata ayıklaması kolaydır. Başsız bir tarayıcı JavaScript'i çalıştırır ve bir insanın gördüğünü görür; bunun bedeli zaman ve işlem gücü açısından çok daha yüksektir. Önce her hedefi deneyin: sayfayı işlemeden indirin ve içeriğin yanıtta ya da sayfanın yüklediği bir JSON verisinde olup olmadığına bakın; bu veri çoğu zaman işlenmiş HTML'den daha kolay kullanılır.

Sayfa işleme gerçekten gerekiyorsa, aracın şunlara izin verip vermediğini kontrol edin:

  • sabit bir bekleme yerine belirli bir öğeyi ya da ağ durumunu beklemek;
  • yüklemeyi hızlandırmak için görselleri, yazı tiplerini ve izleyicileri engellemek;
  • içerik sayfalara bölünmüşse kaydırmak, "daha fazla yükle" düğmesine tıklamak ya da küçük bir betik çalıştırmak;
  • hata ayıklama için ekran görüntüsü ya da son DOM'u döndürmek;
  • pek çok site içeriği bölgeye ve cihaza göre değiştirdiği için yerel ayarı, saat dilimini ve görüntü alanını belirlemek.

Tarayıcıları hizmet olarak çalıştırmanın ödünleşimlerini başsız tarayıcı API'leri sayfası ele alıyor.

Engellenme: kurnaz olmadan önce iyi bir istemci olun

Siteler otomatik trafiği gerçek nedenlerle sınırlar: yük, kötüye kullanım, içerik lisansı. Pek çok araç dönen vekil sunucular, tarayıcı parmak izi yönetimi ya da CAPTCHA çözümü üzerinden "engel aşma" vaat eder. Bunlardan herhangi birine güvenmeden önce kendi politikanızı belirleyin; çünkü araç bunu sizin yerinize belirlemez.

  • Robots kurallarına uyun. Protokol RFC 9309 ile tanımlanmıştır; dosyayı her sunucu için indirip önbellekte tutun.
  • Kendinizi tanıtın; kurulum izin veriyorsa dürüst bir kullanıcı aracısı ve bir iletişim adresiyle.
  • Sunucu başına hız sınırı koyun; hatalarda ve hız sınırı yanıtlarında geri çekilin, yoğun taramaları sitenin yoğun saatlerinden uzak tutun.
  • Erişim denetimlerini dolanmayın. Oturum açma ekranları, ödeme duvarları ve CAPTCHA'lar, site sahibinin otomatik erişime onay vermediğinin işaretidir. Bir hesabınızın olması, onu otomatikleştirme izni değildir.
  • Vekil sunucuların nereden geldiğini sorun. Bir sağlayıcı trafiği konut IP adresleri üzerinden yönlendiriyorsa, bu adreslerin nasıl edinildiğini ve kurumunuzun standartlarına uyup uymadığını kontrol edin.

İhtiyaç duyduğunuz bir kaynak otomatik erişimi engelliyorsa bir besleme, resmî bir API, bir veri lisansı ya da doğrudan bir anlaşma arayın. Zamanla bunlar genellikle bir silahlanma yarışından daha ucuza gelir.

Çıktı biçimleri: hattınızın neyi tükettiğine karar verin

Yapay zekâ hatlarının çoğu üç şeyden birini ister; pek çoğu birden fazlasını:

  • Ham HTML. En azından bir süre saklayın. Çıkarıcınız geliştiğinde ya da bozulduğunda sayfayı yeniden indirmeden yeniden işleyebilirsiniz.
  • Temiz metin ya da markdown. Şablon metin temizlenmiş, başlıklar ve tablolar korunmuşsa erişim ve özetleme için doğru girdidir. İyi bir ana içerik çıkarma adımının ne döndürdüğünü makale çıkarma rehberi anlatıyor.
  • Yapılandırılmış alanlar. Sizin tanımladığınız bir şemaya uyan JSON. Seçiciye dayalı çıkarma kesin ve ucuzdur ama sayfa düzeni değişince bozulur. Modele dayalı çıkarma düzene uyum sağlar ama değer uydurabilir; bu yüzden şemaya karşı doğrulayın ve değer sayfada yoksa boş (null) dönmesini şart koşun. Bkz. yapay zekâ ile yapılandırılmış veri çıkarma.

Biçim ne olursa olsun, her yanıtta üst veri isteyin: istenen URL, yönlendirmelerden sonraki son URL, HTTP durumu, alınma zamanı ve sayfa işleme kullanılıp kullanılmadığı. İçeriği nereden ve ne zaman geldiğini söylemeden döndüren bir araç, üzerine kurulan her atıfı zayıflatır.

Koşullar ve hukuk: ölçeklemeden önce yanıtlayın

Bu bir yön bulma notudur, hukuki tavsiye değildir; somut kaynakları ve kullanımları hukuk danışmanınıza götürün. En sık gündeme gelen sorular:

  • Site koşulları. Her hedefin kullanım koşulları otomatik erişimi ya da yeniden kullanımı kısıtlıyor mu? Lisanslı bir alternatif var mı?
  • Telif ve veri tabanı hakları. İçeriği kurum içinde mi analiz ediyorsunuz, yoksa yeniden yayımlıyor ya da dağıtıyor musunuz? Tam kopyaları uzun süre saklamak açık bir karar gerektirir.
  • Kişisel veri. Adlar, profiller ve iletişim bilgileri, nerede yayımlanmış olurlarsa olsunlar, KVKK ve GDPR gibi düzenlemeler kapsamında kişisel veridir. Toplamadan önce hukuki bir dayanağa ve bir saklama kuralına ihtiyacınız var.
  • Satıcı sözleşmesi. Sayfaların nasıl indirildiğinden kim sorumlu? Sağlayıcı isteklerinizden ve sonuçlarınızdan neyi kaydediyor ya da saklıyor, bunlar nerede işleniyor?
  • Yapay zekâya özgü sinyaller. Bazı siteler yapay zekâ tarayıcılarına yönelik yönergeler ya da llms.txt gibi dosyalar yayımlar. Hattınızın bunlara nasıl davranacağına karar verin ve kararı kayda geçirin.

Bakım: demoda kimsenin göstermediği maliyet

Kazıyıcılar siteler değiştiği için bozulur. Buna ilk çalıştırmadan itibaren hazırlanın:

  • Her sonucu şemasına karşı doğrulayın ve her kaynak için alanların ne sıklıkla boş döndüğünü izleyin. Ani bir sıçrama, sayfa düzeninin değiştiğinin en açık işaretidir.
  • "Boş içerikli başarı"yı hata sayın. Bir istek 200 durum koduyla dönüp gövdesinde yalnızca bir onay sayfası taşıyabilir.
  • Yalnızca hata veren çalıştırmalar için değil, hiç gerçekleşmeyen çalıştırmalar için de uyarı üretin.
  • Çıkarma kurallarınızı sürümleyin ve her kaydı hangi sürümün ürettiğini kaydedin.
  • Her kaynak için bir sorumlu belirleyin. Sahibi olmayan kazıyıcılar sessizce çürür.

Barındırılan mı, kendi sunucunuzda mı

KonuBarındırılan API ya da platformKendi barındırdığınız çatı
İlk sonuca kadar geçen süreKısaDaha uzun
Sayfa işleme ve vekil sunucularSağlayıcı işletirSiz işletirsiniz
Davranış üzerinde denetimSağlayıcının seçenekleri içindeTam
İsteklerin ve verinin gittiği yerÜçüncü bir taraf üzerindenKendi altyapınız
Maliyet yapısıKullanıma göreBüyük ölçüde sabit, artı mühendislik zamanı
Bakımİndirme sağlayıcıda; çıkarma kuralları yine sizdeTamamen sizde
Bağımlılık riskiFiyat, koşullar ya da ürün değişebilirEkibinizin kapasitesine bağlı

Yaygın bir bölüşüm şudur: düzgün davranan, yüksek hacimli birkaç kaynak için kendi barındırdığınız indirme, zorlu sayfalardan oluşan uzun kuyruk için barındırılan bir hizmet.

GoCux nerede devreye girer

GoCux bir kazıyıcı ya da tarayıcı değildir ve açık web'i okumaz; dolayısıyla bu sayfadaki araçların hiçbirinin yerini almaz. Malzeme toplandıktan sonra onunla çalışır. Web içeriği bir projeye yalnızca yetkilendirilmiş bir tarama ya da dışa aktarma adımıyla girer ve içe aktarılırken özgün sayfa referansını ve alınma tarihini korur. Bir tarayıcı görevi gerektiğinde Browser Link yalnızca kendisine açıkça verilmiş görevi yürütür; bir URL hiçbir zaman bir oturum açma ekranını aşma izni olarak görülmez.

Bu noktadan sonra Bilgi çıkarma, toplanan malzemeyi her biri kendisini destekleyen pasajla birlikte değerlere dönüştürür; eksik bir değeri tahmin etmek yerine bilinmiyor olarak bırakır. Veri dışa aktarmak, kapsamdaki dosyalar listelenerek bir insan kararı için duran eylemlerden biridir. Yaklaşımı web kaynakları ve sorumlu ajan erişimi sayfası anlatıyor.

Karar vermeden önce bir deneme planı

  1. Yukarıdaki kaynak profilini gerçek işiniz için yazın.
  2. Zor durumları içeren bir hedef URL örneklemi seçin: JavaScript ağırlıklı sayfalar, sayfalara bölünmüş listeler, bölgesel sürümler, çerez onayı arkasındaki sayfalar.
  3. Her adayı bu örneklem üzerinde çalıştırın ve her sonucu canlı sayfayla elle karşılaştırın.
  4. Her birinin nasıl başarısız olduğunu kaydedin: hata, boş başarı, eksik sayfa ya da yanlış alan.
  5. Her yanıtın istenen URL'yi, son URL'yi, durum kodunu ve alınma zamanını taşıdığını doğrulayın.
  6. Satıcının veri saklama ve sorumluluk koşullarını, hedef sitelerin de amaçladığınız kullanıma dair koşullarını okuyun.
  7. Bakım yükünü tahmin edin: bir site değiştiğinde kim düzeltecek ve bunu nasıl fark edeceksiniz?

Bu iş akışını çalışma alanınıza taşıyın.

Kapsamı belirleyin. Kanıtları inceleyin. Gereken adımları onaylayın.

Çalışma alanını aç

Sıradaki adım