Elinizde iki yüz farklı küçük site var ve hepsinden aynı alanların — ürün adı, fiyat, stok durumu — toplanması gerekiyor. Site başına betik yazmak yüzlerce seçici demek; hepsini tek bir kazıma API'sine sokmaksa çoğunun yapısı uymadığı için boş kayıt demek. Aynı işi bir yapay zekâ ajanına verdiğinizde tablo değişir: ajan her sayfayı kendisi okur, verinin nerede olduğuna o sayfaya bakarak karar verir, gerekirse bir bağlantıya girip yarı yolda planını düzeltir.
Bu, agentic web scraping'in (ajanlı veri kazıma) bir cümlelik özeti. Bu yazıda ajanlı kazımanın ne olduğunu, ajan döngüsünün kazıma işinde hangi adımlarla işlediğini, sistemin yapı taşlarını, çalışan bir iskelet kodu, kurallı betiklere göre maliyet ve güvenilirlik tarafını ve ajanın tipik hata modlarını anlatıyoruz. Yolun kimde olduğu sorusunun "AI web scraper" tarafını — modelin yalnız ayrıştırma adımında çalıştığı sabit boru hattını — AI Web Scraper yazımızda ele aldık.
Agentic web scraping nedir?
Sayfadan veri toplamanın üç kademesi vardır ve terimi doğru kullanmak için üçünü ayrı tutmak gerekir. Birinci kademede her şey geliştiricinin elindedir: betik hangi adrese gideceğini, hangi öğeden veri alacağını kodla bilir. İkinci kademede ayrıştırma işi dile devredilir ama yol yine sabittir: sayfa gelir, model alanları çıkarır, akış biter — AI web scraper yazımızın konusu buydu. Üçüncü kademede model döngünün içine girer: hangi sayfaya gidileceği, hangi düğmeye basılacağı, ne zaman durulacağı çalışma sırasında karar verilir. İşte bu üçüncü kademe agentic web scraping'dir.
Anthropic'in etkili ajanlar yazısındaki ayrımla söylersek: adımları kodun çizdiği akışlar iş akışı, modelin kendi sürecini yönettiği akış ajandır. Ajanlı kazıma, o tanımın veri toplamaya uygulanmış hâlidir. Farkı tek cümlede sıkıştırmak gerekirse: AI scraper'da "sayfayı kim ayrıştırıyor?" sorusunun cevabı modeldir; agentic kazımada "yolu kim seçiyor?" sorusunun cevabı da modele geçer.
Ajan döngüsü kazımada nasıl işler?
Ajanın genel çalışma biçimi — algıla, planla, uygula, değerlendir — ve bu döngünün teorik temeli, AI Ajanları Nasıl Çalışır? yazımızın konusuydu; burada tekrar etmeyip kazımaya özgü hâline bakalım. Her turda beş adım döner:
- Gözlemle. Ajanın "gördüğü", tarayıcı penceresinin pikselleri değil sayfanın yapısal özetidir: erişilebilirlik ağacı, başlıklar, bağlantı listeleri, form alanları. Bu özet modelin bağlam penceresine girer; ham HTML'in tamamı girmez.
- Planla. Model hedefe — "bu listedeki her ürünün fiyatını çıkar" — bakarak sıradaki eylemi seçer: filtre düğmesine tıklamak, sayfalamanın ikinci sayfasına geçmek ya da verinin artık görünür olduğuna karar vermek.
- Uygula. Modelin seçtiği eylem bir araç çağrısıdır:
git(url),tıkla(betimleme),doldur(alan, değer)gibi. Çağrıyı gerçekten çalıştıran tarayıcıdır; model yalnızca emri yazar. - Çıkar. Hedef veri görünür olduğunda model, tanımladığınız şemaya göre alanları doldurur. Bu adım, sabit hattaki ayrıştırma adımının ajan içine yerleşmiş hâlidir.
- Doğrula ve tekrarla ya da bitir. Çıktının türleri ve zorunlu alanları kodla denetlenir; eksikse model hangi bilginin eksik olduğunu görüp ilgili sayfaya döner. Adım bütçesi, maliyet sınırı ya da sayfa sayısı gibi bir durma koşulu döngünün sonsuz sürmesini önler.
Dördüncü ve beşinci adım, ajanlı kazımanın iki ayrı disiplinle aynı anda çalıştığını gösterir: modelin kararlarına ve çıktısına güvenmemek aynı anda iki katmana iş yükü ekler — bir doğrulama katmanı ve bir durdurma katmanı. İkisi de yoksa sistem "çalışıyor" görünürken sessizce hatalı veri üretir.
Yapı taşları
- Tarayıcı aracı. Ajanın elleri. Playwright gibi bir otomasyon kütüphanesi, modelin görebileceği erişilebilirlik ağacını ve kullanabileceği eylemleri sunar; bu işi MCP sunucusu olarak yapan hazır bir bileşen de vardır. Kurulumunu ve proxy bayraklarını Playwright MCP yazımızda anlattık; protokolün kendisini MCP Nedir? yazımıza bırakıyoruz.
- Şema ve doğrulama. İstenen verinin JSON şeması, modelin çıktısını sözleşmeye bağlar. Tür, zorunluluk ve aralık kontrolleri kodda durur; şüpheli kayıt ana depoya yazılmadan ayrı kuyruğa düşer.
- Durak noktası ve hafıza. Uzun işler yarıda kesilebilir; ajanın gezdiği adresler, tamamlanan sayfalar ve topladığı kayıtlar dışarıda tutulur. Bağlam penceresi kısa süreli hafızadır; iki yüz sitelik bir işin hafızası modelin penceresine sığmaz, dosyaya sığar.
- Güvenlik sınırları. Ajanın açabileceği alan adları, atabileceği adım sayısı ve çağırabileceği araçlar baştan kısıtlanır; kazıdığı sayfanın içeriği modele veri olarak girer, talimat olarak değil. İzin listesi, hız sınırı ve injection temizliği dahil bu katmanın tamamını LLM'e Güvenli Web Erişimi yazımızda kurmuştuk.
Küçük bir ajan iskeleti
Aşağıdaki Python taslağı, yukarıdaki döngünün sağlayıcıdan bağımsız iskeletini gösterir. Tarayıcı tarafı Playwright'tır; model_cagir fonksiyonu kullandığınız sağlayıcının istemcisiyle doldurulur ve modelden ya bir eylem ya da şemaya uygun çıktı beklenir.
import json
from playwright.sync_api import sync_playwright
PROXY = {"server": "http://pr.proxynet.io:8000",
"username": "kullanici", "password": "parola"}
HEDEF = "https://example.com/urun-listesi"
SEMA = {"urun_adi": str, "fiyat": float, "stokta": bool}
def gozlemle(sayfa):
# Ajanın gözü: ham HTML değil, sayfanın yapısal özeti.
return sayfa.locator("body").aria_snapshot()
def model_cagir(gozlem, talimat):
# Sağlayıcının resmî istemcisiyle doldurun. Modele gozlem + talimat
# gönderilir; yanıt ya {"arac": ..., ...} ya da şemalı veridir.
raise NotImplementedError("model çağrısı burada yapılır")
def dogrula(kayit):
for alan, tur in SEMA.items():
if not isinstance(kayit.get(alan), tur):
raise ValueError(f"{alan} beklenen türde değil")
return kayit
with sync_playwright() as p:
tarayici = p.chromium.launch(proxy=PROXY)
sayfa = tarayici.new_page()
sayfa.goto(HEDEF)
for adim in range(8): # durma koşulu: adım bütçesi
karar = json.loads(model_cagir(gozlemle(sayfa),
"Listedeki ürünleri çıkar."))
if karar.get("arac") == "cikar":
print(dogrula(karar["kayit"])) # modele doğrudan güvenilmez
break
if karar["arac"] == "git":
sayfa.goto(karar["url"])
elif karar["arac"] == "tikla":
sayfa.get_by_role(karar["rol"], name=karar["ad"]).click()İskeletin üç özelliği yazının geri kalanının özetidir: modelin her turda gördüğü şey ham HTML değil yapısal özettir; döngünün bir durma koşulu vardır; modelin çıktısı dogrula'dan geçmeden hiçbir yere yazılmaz. Playwright'ın proxy seçeneklerinin tamamını Playwright proxy yazımızda tablo hâlinde vermiştik.
Kurallı kazımayla yan yana
Üç kademeyi aynı tabloda koymak, hangi işin hangi kademeye gittiğini netleştirir:
| Ölçüt | Kurallı betik | AI scraper (sabit hat) | Ajan (agentic) |
|---|---|---|---|
| Yolu kim seçer? | Geliştirici, kodda | Geliştirici, kodda | Model, çalışma sırasında |
| Site değişikliğine dayanıklılık | Düşük | Yüksek (ayrıştırmada) | Yüksek (ayrıştırma + yolda) |
| Birim maliyet | Neredeyse sıfır | Sayfa başına token | Tur başına token; tur sayısı değişken |
| Öngörülebilirlik | Yüksek | Orta | Düşük |
| Uygun iş | Kararlı sayfa, yüksek hacim | Değişken yapılı sayfalar | Çok adımlı, yolun baştan bilinmediği işler |
Maliyet formülü basittir: ajanın toplam ücreti, tur sayısı ile tur başına gönderilen ve alınan tokenin çarpımıdır. Kurallı betikte bu sayı sıfıra yakındır; AI scraper'da tur sayısı birdir (tek ayrıştırma çağrısı); ajan işlerde ise tur sayısı, sayfanın zorluğuna göre değişir — çoğu sayfa iki turda biterken filtre menülerinden geçen bir iş altı sekiz tur sürebilir. Bu nedenle ajanın bütçesi işin kendisine değil, adım bütçesiyle bağlanır: döngüye for adim in range(8) gibi bir tavan yazılmadan kurulan sistem, bozuk bir sayfada saatlerce tur atabilir. Model tarafının birim maliyetlerinin nasıl hesaplandığını GPT-6 Astra ile Web Kazıma yazımızda ayrıca ele almıştık.
Ajanın hata modları
Ajanlı sistemlerin hataları betiğinkinden farklıdır; betik kırılınca durur, ajan kırılmadan sapabilir. Başlıca modlar ve göründükleri yer:
- Döngüye girme. Ajan aynı iki sayfa arasında gidip gelir ya da aynı düğmeye art arda tıklar. Görünümü tur sayısının şişmesi ve aynı eylem dizisinin kayıtlarında tekrarlanmasıdır; çaresi ziyaret edilen adreslerin ve eylemlerin tutulup modelin her turda bu listeyi görmesidir.
- Hedef sapması. Model, "fiyat çıkar" hedefini "siteyi gezer" hedefine çevirir; kayıt gelmez ama tur dolar. Çaresi hedefi her turun bağlamında tekrar etmek ve boş tur sayısına tavan koymaktır.
- Uydurma doldurma. Veri görünmüyorken model alanları olasılıkla doldurur. Tek çaresi doğrulama katmanıdır; şüpheli kayıt kuyruğu bu hata modunu yakalayan tek yerdir.
- Maliyet patlaması. Döngü ve sapmanın birleşik sonucu: adım tavanı ve bütçe tavanı yazılmamış bir iş, tek çalışmada günün bütçesini harcayabilir. İki tavan da kodda durur, modelin vicdanına değil.
- Sessiz bozulma. En sinsi mod: ajan az sayıda kayıtla "başarılı" döner. İki yüz siteden otuzu boşsa ve kimse bakmadıysa, hata günlükte değil raporun kendisinde gizlidir. Çaresi beklenen-altı uyarısıdır: beklenen kayıt sayısının altına düşen iş ayrı işaretlenir.
Engellenme tarafında ne değişti?
Ajanın bot korumalarına görünümü, başsız tarayıcı kullanan her kazıyıcıyla aynıdır: IP itibarı, istek hızı ve tarayıcı sinyalleri aynı şekilde ölçülür; modelin zekâsı bu ölçümlere görünmez. Üstelik ajan, sabit hattan daha çok istek üretir — her karar için ara sayfalar açılır, geri dönülür. Bu yüzden ajan işlerinde oturum sürekliliği önem kazanır: aynı gezinme oturumunun aynı çıkış adresinden çıkması, ortadaki isteklerin birbirine bağlanmaması demektir. Oturum boyunca değişmeyen adres sağlayan Sticky Proxy bu yüzden ajan işlerine uyar; geniş hedef listelerinde havuzu büyütmek için Residential Proxy kullanılır.
Meşru çerçeve tarafında da hiçbir şey kolaylaşmıyor: ajan yine robots.txt'e ve site koşullarına uymak zorunda, oturum arkası ve kişisel veri yine ayrı bir sorumluluk. Bunlara bir satır daha eklendi: siteler, kendilerine gelmeyi açıkça bildiren ajanlarla (doğrulanmış bot kimliği, imzalı istekler) gelmeyenleri ayırmaya başladı. Ajanların neden engellendiğini ve bu yeni düzeni AI Alışveriş Ajanları Neden Sitelerde Engelleniyor? yazımızda ele almıştık; özet şu, meşru yol tespiti aşmak değil kimliğini açıkça taşımaktır.
Kullanım alanları
- Filtre menüsünden geçen listeler. Kategori, filtre ve sayfalama adımlarının her sitede farklı işlediği kataloglarda ajan, betik başına saatlerce çalışmayı tek talimata indirir; sayfalama mantığının betik tarafını Sayfalama (Pagination) yazımızda anlattık.
- Uzun kuyruk kataloglar. Yüzlerce küçük satıcı sitesini tek şemada toplamak, site başına seçici yazmaktan ajanla prototiplemekten doğar; sabit hatla büyütme AI Web Scraper yazımızın karar tablosundadır.
- Fiyat ve stok izlemenin ilk kurulumu. Yeni bir hedef setinde ajan ilk keşfi yapar, bulunan yol kararlıysa aynı iş kurallı betiğe devredilir; izlemenin uçtan uca kurulumu Rakip Fiyat Takibi yazımızdadır.
- Model uygulamalarına canlı veri. Ajan, dil modeli uygulamanız için güncel sayfa içeriğini toplayıp temiz hâliyle sunabilir; bu kullanımda erişim katmanı LLM'e Güvenli Web Erişimi yazımızdaki kurallarla sınırlandırılmalıdır.
Ne zaman ajan, ne zaman betik?
| İhtiyaç | Öneri |
|---|---|
| Tek, kararlı sayfa; yüksek hacim | Kurallı betik; model gerekmez |
| Yapı değişen sayfalar; yol sabit | AI scraper (sabit hat + LLM ayrıştırma) |
| Adımlar baştan bilinmeyen, çok adımlı iş | Ajan; adım ve bütçe tavanıyla |
| Prototip ve keşif, sonra büyüyecek iş | Ajanla keşif, bulunan yolu betiğe devretme |
| Günde milyonlarca sayfa | Ajan değil; kurallı hat + istisnada model |
Son satır kuralı şöyle özetlenebilir: ajan işin keşif aşamasına, betik tekrar aşamasına aittir. Ajanın bir kez bulduğu yolu (girilen adresler, tıklanan öğeler, gönderilen form değerleri) betiğe çevirmek, aynı işi bundan sonra token'sız tekrarlatmak demektir.
Hukuki ve etik çerçeve
Ajan, kazımanın hukukunu değiştirmez: robots.txt, site koşulları, kişisel veri ve oturum arkası içerik kuralları aynen geçerlidir; çerçeveyi Web Scraping Yasal mı? yazımızda anlattık. Ajanlı çalışmanın iki ek sorumluluğu vardır. Birincisi, sayfa içeriği model API'sine gönderilir: kişisel veri içeren sayfalarda bu aktarımın kendisi mevzuata girer ve gönderimden önce temizlik gerekir. İkincisi, ajan salt okuma yapmaz — tıklar, formlar doldurabilir; ona verilecek yetkiler bu yüzden en düşük gereksinimle sınırlandırılmalı ve eylemleri kayıt altına alınmalıdır.
Sık sorulan sorular
Agentic web scraping klasik scraping'in yerine mi geçiyor?
Hayır. Ajan, yolun baştan bilinmediği işlerde değer üretir; kararlı sayfada ve yüksek hacimde kurallı betik hâlâ daha hızlı, daha ucuz ve daha öngörülebilirdir. Yaygın düzen ikisinin yan yanadır: ajan keşfeder, betik tekrar eder.
Ajanlı kazımanın maliyeti nasıl hesaplanır?
Tur sayısı ile tur başına token giderinin çarpımıdır. Kurallı betikte tur sayısı sıfır, AI scraper'da bir; ajan işlerde sayfanın zorluğuna göre değişir. Bu yüzden bütçe işe değil döngüye bağlanır: adım tavanı ve harcama tavanı koda yazılır.
Hangi durumlarda ajan kullanmak mantıklı?
Yapının her seferinde farklı olduğu, adımların önceden yazılamadığı ve işin hacminin token giderini karşıladığı durumlarda. Filtre menüleri, çok adımlı listeler ve yüzlerce farklı küçük site bu tanıma uyar; tek ürün sayfası uymaz.
Ajanın topladığı veri nasıl doğrulanır?
Sabit hatta doğrulanmasından farklı değildir: JSON şeması, tür ve zorunlu alan kontrolleri, aralık denetimleri ve örneklemle elle karşılaştırma. Ek olarak ajan işlerinde beklenen kayıt sayısı izlenir; beklenenin altına düşen iş sessizce geçmez, ayrı işaretlenir.
Siteler ajanları engelliyor, meşru yol ne?
Ajanın kimliğini gizlemek değil, açıkça taşımak; sitenin koşullarına ve robots.txt'e uymak; verilebilecekse doğrulanmış bot kimliği kullanmak. Engellenmenin nedenlerini ve imzalı ajan düzenini AI Alışveriş Ajanları yazımızda anlattık.
Agentic scraping'e hangi araçla başlamalı?
Tarayıcı tarafı için Playwright ve onu modele bağlayan bir arayüz: ya hazır bir MCP sunucusu ya da kendi döngünüz. Model tarafında yapılandırılmış çıktı desteği olan herhangi bir API yeter; başlangıç için yukarıdaki iskeleti adım tavanıyla birlikte kullanabilirsiniz.
Özetle
Agentic web scraping, modeli kazımanın hem yoluna hem ayrıştırmasına sokar: sayfayı gözlemler, sıradaki adıma karar verir, veriyi şemaya göre çıkarır. Kazandırdığı şey değişken ve çok adımlı işlerin tek talimata sığması; bedeli, tur sayısıyla büyüyen maliyet ve kodla dizginlenmesi gereken öngörülemezlik. Adım tavanı, doğrulama katmanı ve kayıt tutma yerindeyse ajan keşif için güçlü bir araçtır; tekrar eden kararlı işler betikte kalır. Veri toplama hattınızı kurarken veri kazıma çözümlerimize göz atabilirsiniz.




