Tarayıcı Açmadan Çalışan Makale Çıkarıcı — ve Test Sayfalarımı da Temizce Ayıkladı

Son güncelleme: July 17, 2026
Tarayıcı Açmadan Çalışan Makale Çıkarıcı — ve Test Sayfalarımı da Temizce Ayıkladı
AI Özeti
Bu trafilatura incelemesi, kütüphaneyi tarayıcı, crawler ya da yapılandırılmış scraper olmaktan ziyade odaklı bir makale içerik çıkarıcısı olarak konumlandırıyor. İnceleme, trafilatura’nın statik HTML’den başlık, yazar, tarih ve gövde paragraflarını korurken şablon kalıntılarını ne kadar iyi temizlediğini test ediyor. Ayrıca çoklu format çıktısı, hafif kurulum, hız, hata sınırları ve aracın ürün katalogları ya da rastgele alan çıkarımı için neden uygun olmadığı ele alınıyor. Temiz makale metnine arama, analiz veya LLM iş akışları için ihtiyaç duyan ekipler adına, headless browser kurmadan ya da site bazlı seçiciler yazmadan kullanılabilecek faydalı bir benchmark niteliğinde.

Bu yıl dikkat çeken çoğu veri çekme aracı bir tarayıcı çalıştırmak istiyor. trafilatura ise istemiyor. Statik HTML’i okuyup hangi blokların gerçekten makale olduğunu ayırt eden ve geri kalanını çöpe atan, saf Python tabanlı bir kütüphane. Ana içeriği ayıklama işi tam olarak bunun için var ve kütüphane bunu, henüz kimsenin “LLM-ready markdown” demediği zamanlardan beri yapıyor.

2.1.0 sürümünü Python 3.14 üzerinde sabit bir test setinden geçirdim; aklımda en çok kalan test, makale testiydi. Gerçek metinden oluşan bir gövdeyi olağan sayfa kalabalığıyla çevreledim — giriş istemi, bir “Subscribe” uyarısı, gezinme bağlantıları, telif hakkı alt bilgisi — ve trafilatura bana başlığı, üç paragrafın üçünü de, yazarı ve tarihi geri verdi; üstelik tüm şablon kalıntıları tamamen temizlenmişti. Tarayıcı yok, siteye özel kural yok, tek bir fonksiyon çağrısı yeterli. Ama bir sınırı var; siz yapılandırılmış bir şey istemeye başladığınız anda ortaya çıkıyor. Aşağıda ona değiniyorum (bu bir kusur değil, tasarım tercihi).

trafilatura nedir ve bırakılması gereken varsayım

Resmî kısa tanımında, onu “Web’den metin ve metadata toplamak için Python ve komut satırı aracı: crawling, scraping, extraction” olarak anlatıyor; çıktıyı da CSV, JSON, HTML, Markdown, TXT ya da XML olarak sunabildiğini söylüyor. Bu tanım geniş bir alanı kapsıyor ama aracın asıl fark yaratan tarafını biraz gölgede bırakıyor. Değerini crawl yardımcıları ya da altı farklı çıktı formatı değil, içerik çıkarımı oluşturuyor: HTML belgeyi al, ana makale metnini çıkar, sayfa çerçevesini kaldır.

Zihinsel modeli şöyle kurmak iyi olur; çünkü hem gücünü hem de sınırını tek hamlede açıklıyor. Bir sayfaya yönelttiğiniz çoğu scraper, seçici mantığıyla çalışır. Onlara “product-price sınıfına sahip öğeyi al” dersiniz, onlar da o adreste ne varsa getirir. trafilatura ise ters yönden ilerler. Tüm belgeyi okur ve sizin yazdığınız bir seçiciye değil, içerik sezgilerine dayanarak hangi blokların makale, hangilerinin şablon kalıntısı olduğuna karar verir. Daha önce hiç görmediği bir sayfayı temizlemek için site bazlı yapılandırma istememesinin nedeni bu. Ve tam da bu yüzden yapılandırılmış bir katalog döndüremez: ortada şema yok, alan eşlemesi yok, sadece neyin içerik sayılacağına dair bir yargı var. Bu, hedefe dönük bir parser değil, bir içerik ayıklayıcı.

Ayrıca gerçekten çok hafif. Saf Python, headless browser yok, önbellekte bekleyen bir chromium ikilisi yok, ilk çalıştırmada sürpriz yapacak bir Playwright kurulumu yok. Bu özellik küçük görünür; ta ki binlerce URL üzerinde ayıklama yapmaya başlayıp her bir bağımlılık megabaytını ve her alt işlemi operasyonel yük olarak taşımak zorunda kalana kadar. 2026-07-09 itibarıyla proje yaklaşık 6.26k yıldız civarında (adbar/trafilatura); tarayıcı ve crawler çerçeveleriyle aynı torbaya atılmasına rağmen, boyut olarak onlardan çok daha küçük bir depo. Bu, kalitesi hakkında değil, kapsamı hakkında konuşuyor.

Kurulum kısa, değerlendirme de kısa

Kurulum tek satır ve uyarı gerektirecek hiçbir şey yok; bunu özellikle not etmek gerekiyor. Yeni bir sanal ortamda pip install trafilatura, Python 3.14 üzerinde tertemiz bir paket ağacı kurdu — indirilecek tarayıcı yok, kurulum sonrası adım yok, karşınıza çıkacak bir transitive dependency duvarı yok. Bu tür kütüphaneleri yeterince incelediğim için, ikinci ayakkabının düşmesini beklemeye alışığım: ilk çalıştırmada ortaya çıkan 150 MB’lık tarayıcı paketi, derlenmeyen yerel uzantı, kimsenin bahsetmediği ekstra [fetchers] grubu. trafilatura’da o ikinci ayakkabı hiç düşmedi.

pip’in bana verdiği sürüm (2.1.0), 2026-06-07’de yayımlanan güncel sürümle aynı; yani aşağıdaki hiçbir sayı için “eski bir sürümü test etmişsiniz” dipnotu yok. Bu kategoride bu her zaman doğru olmaz — incelediğim daha ağır araçların çoğu, onları çalıştırdığımda büyük sürüm farkıyla geride kalmış oluyordu. Burada test ettiğim sürüm ile yayımdaki sürüm aynı.

Uygulamada: çıkarıcı gerçekte ne döndürdü

trafilatura’yı hem güçlü olduğu alanı hem de sınırını gösterecek sabitlerle denedim. Fikri en net değiştiren test, makale testiydi.

trafilatura boilerplate cleanup

Yerel bir makale örneğini aldım ve gerçek içeriği gürültünün içine gömdüm — giriş istemi, bir “Subscribe” çağrısı, gezinme bağlantıları ve telif hakkı alt bilgisi; yani dikkatsiz bir scraper’ın gövdeyle birlikte içeri çekebileceği tipik kalıntılar. trafilatura başlığı ve üç paragrafın üçünü de geri verdi; ayrıca benzersiz tüm şablon izleri — Login, Subscribe, Copyright — çıktıdan tamamen yoktu. Metne ek olarak, yazar ve tarihi sayfa metadata’sından doğru biçimde çekti. Tek bir çağrıyla sonuç .txt, .md ve .json olarak üretildi.

trafilatura title and 3/3 paragraphs retained

Bu çoklu format detayı önemli. Tek bir çıkarım, düz metin, Markdown ve JSON olarak çıktı verdi. Markdown yolu, şu anda herkesin peşinden koştuğu “LLM-ready text” adımı: kirli bir sayfayı ver, yapısı korunmuş temiz bir yazı al, modele aktar. trafilatura bunu tarayıcıyı hiçbir yerde devreye sokmadan yapıyor; aynı çıktıyı üretmek için tarayıcı tabanlı araçların bütün bir render yığını kurmasına gerek kalmıyor.

Ardından herkese açık bir kontrol yaptım. Canlı bir ürün sayfasına — Books to Scrape içindeki bir ürün sayfasına — yönlendirdim ve 1.324 karakterlik temiz metin ile Markdown döndürdü: açıklama bloğu, okunabilir halde ve etrafında sayfa kalabalığı olmadan. HTTP 500 dönen bir sayfa verdiğimde ise fetch_url, hata fırlatmak yerine None döndü. Çökme yok, yığın izinde boğulma yok. Böyle sıkıcı ama doğru hata davranışı, arka planda ya da zamanlanmış bir işte çalışacak bir araçta tam da istediğiniz şeydir.

Uyarılar

Üç tane var; her biri aracın nerede uygun olduğunu daraltıyor.

trafilatura catalog text-only boundary

Birincisi ve en önemlisi: trafilatura bir içerik ayıklayıcıdır, yapılandırılmış scraper değil. Onu 12 ürünlü bir katalog örneğinde denedim. Tüm 12 ürün adını — yalnızca metin olarak — döndürdü ve tam 0 yapılandırılmış satır verdi (478 karakter düz metin). İsimler ve fiyatlar çıktının içinde var; sadece alan olarak gelmiyorlar. İhtiyacınız [{name, price, rating}, …] ise bu yanlış araçtır ve hiçbir yapılandırma seçeneği bunu değiştirmez. Bu, bir hata değil; aracın ne için tasarlandığına dair bir karar.

trafilatura no JavaScript render boundary

İkincisi: JavaScript çalıştırmaz. Statik HTML tüketir. Client-side render edilen bir tek sayfalık uygulamaya yöneltirseniz, sunucunun JavaScript çalışmadan önce gönderdiği şeyi alırsınız; bu da çoğu zaman işinize yarar hiçbir şey değildir. Hedefleriniz JS ağırlıklıysa, yanına ayrı bir render aracı koymanız gerekir — trafilatura o kısmı sizin için yapmaz ve zaten böyle bir iddiası da yok.

Üçüncüsü, kendi kanıtım için bir not. Yukarıdaki herkese açık çıkarım testi, gerçek bir haber makalesi yerine bir ürün açıklaması bloğuna dayanıyordu; çünkü kullandığım açık sandbox (toscrape ailesi) tamamen kataloglardan oluşuyor, haber sayfası yok. Temiz makale ayıklama sonucu ise kontrollü yerel bir örnekten geliyor. Sonuca güveniyorum — şablon temizliği tartışmasız ve yeniden üretilebilir — ama bir ürün sayfası, haber odası kalitesinde çıkarımın kanıtı değildir; bu yüzden öyle sınıflandırmıyorum.

O boşluğu kısmen kapatmak için, ayrı ve özellikle puanlanmamış bir gösterimi iki gerçek makale sayfasında çalıştırdım; çalıştırmanın deterministik olması için kayıtlı örnekleri okudum. Wikipedia’daki “Web scraping” makalesinde trafilatura, ham HTML’de 230.049 bayt olan gövdeyi çıkarılmış içerikte 26.673 bayta düşürdü (0.116 gövde/ham oranı) ve kontrol edilen dört site-kabuk işareti — “Jump to content,” “Privacy policy,” “Powered by MediaWiki,” “This page was last edited” — tamamen kayboldu. Arşivlenmiş bir Wikinews makalesinde ise 79.716 bayttan 2.200 bayta indi (0.028 oranı) ve kontrol edilen beş işaretin tamamı çıktıdan silindi. Başlık, tarih ve hostname her iki sayfada da dolu geldi; yazar ve site adı ise her ikisinde de null döndü, ve bu eksikleri gizlemek yerine açıkça raporuyorum. Burada akılda tutulması gereken iki şey var: bu bayt oranı, ne kadar işaretleme ve sayfa kalabalığının atıldığını gösterir, çıkarma doğruluğunu değil; ayrıca iki sayfa da aynı MediaWiki ailesinden olduğu için, bu gerçek makaleler üzerinde bir gösterimdir, temsil gücü yüksek bir korpus değildir.

Doğruluk konusunda ise, ölçüm yapmışım gibi davranmak yerine dış kanıta işaret edeceğim. trafilatura kendi evaluation page sayfasını yayımlıyor ve ScrapingHub article-extraction benchmark içinde readability-lxml (~0.887) gibi karşılaştırmalara karşı en yüksek açık kaynak F1 değerini (yaklaşık 0.945) bildiriyor. Bu sayı için iki dürüst not: Bu değer benim testimden değil, o benchmark’tan geliyor; ayrıca raporlanan ~0.945 değeri, benim çalıştırdığım 2.1.0 değil, kaynakta daha eski 0.5.1 hattına bağlı. Bunu, aracın neden iyi bir çıkarım itibarı kazandığına dair dış kaynaklı bir kanıt olarak okuyun; bu incelemeden elde edilmiş bir ölçüm olarak değil.

Artıları ve eksileri

Artıları:

  • Setimdeki en temiz makale çıkarımı — başlık + 3/3 paragraf, tüm şablon işaretleri (Login/Subscribe/Copyright) silinmiş.
  • Gövdeyle birlikte yazar ve tarih metadata’sını da doğru çekiyor.
  • Tek çağrıyla çoklu format çıktısı: txt, Markdown ve JSON — Markdown gerçekten LLM-ready metin adımı.
  • Hafif, saf Python kurulumu — tarayıcı yok, ikili indirme yok, bağımlılık duvarı yok.
  • Zarif hata davranışı: fetch_url, HTTP 500 durumunda istisna atmak yerine None döndürüyor.
  • Test edilen sürüm güncel sürümle aynı (2.1.0) — sürüm kayması yok.
  • Apache-2.0 lisanslı — esnek ve ticari kullanıma uygun.

Eksileri:

  • Yapılandırılmış scraper değil: katalog testinde 12 isim metin olarak geldi, 0 tiplenmiş satır geldi. Şema yok, alan yok.
  • JavaScript render etmiyor — yalnızca statik HTML; client-side sayfalar için ayrı render gerekir.
  • Bazı sitelerde metadata eksik: yazar ve site adı, denediğim gerçek makale örneklerinin ikisinde de null döndü.
  • Açık metin testim gerçek bir haber makalesi değil, ürün açıklaması bloğuydu.
  • Yerleşik crawl/sitemap spider ile CSV/XML çıktı formatlarını bu geçişte kullanmadım; bu yüzden onlar hakkında iddiada bulunmuyorum.

Kimler için uygun, kimler uzak durmalı

trafilatura tam olarak şu sorunu yaşayan kişiye hitap ediyor: “Elimde URL’ler var ve nav bar, çerez bandı, newsletter uyarısı olmadan temiz makale metni istiyorum.” Metin korpusu oluşturmak, sayfaları bir modele beslemek, okunabilir içeriği arşivlemek, web makaleleri üzerinde NLP çalıştırmak — işte bu onun alanı ve bu alanda çok iyi. Kirli HTML’i temiz Markdown’a veya JSON’a dönüştüren hafif, tarayıcısız bir adım istiyorsanız, kurun ve yolunuza devam edin.

Ama asıl ihtiyacınız yapılandırılmış çıkarımsa, yani fiyatlı ürün satırları, tiplenmiş kayıtlar, key: value alanlarıysa, kullanmayın. O size metin verir, tablo değil — katalog testinde isimleri geri getirdi ama satırları getirmedi, ve bu değişmeyecek. Hedefleriniz içeriğini tarayıcıda render ediyorsa ve ayrı bir render motoru eklemek istemiyorsanız yine kullanmayın; çünkü trafilatura statik HTML’i okur ve orada durur. Hata dramatik olmaz; sadece boş ya da ince bir sonuç alırsınız ve nedenini merak edersiniz. Aracı işe eşleştirin — makale metni için evet; yapılandırılmış JSON ya da JS ile render edilen sayfalar için başka yere bakın.

Alternatifler, Thunderbit’in konumu dahil

Web Veri Çıkarımı için Thunderbit’i Deneyin

Önce adil çerçeveyi kuralım. trafilatura, ücretsiz, Apache-2.0 lisanslı, kendi sunucunuzda çalıştırdığınız bir kütüphane. Kodu siz sahiplenirsiniz, sayfa başına maliyeti yoktur ve operasyonel yük oluşturmadan herhangi bir iş akışına eklenebilir. Bir makaleyi temiz metne indirgeme işinde bu kombinasyonu yenmek zordur; ücretli bir servis de bu hükmü değiştirmez.

Karşılaştırma ancak trafilatura’nın bilerek çizdiği sınırda ilginç hale geliyor: yapılandırılmış veri ve JavaScript. Bunlar onun yapmadığı iki şey ve aynı zamanda yönetilen çıkarım API’lerinin çözmek için tasarlandığı iki şey. Thunderbit’in geliştirici yığını tam da bu sınırın öbür tarafında duruyor — statik HTML makale metninde trafilatura ile yarışmak yerine onu tamamlıyor. /distill uç noktası, trafilatura’nın yaptığı işin aynı biçimini sunuyor: sayfayı alıp temiz, LLM-ready Markdown’a dönüştürüyor; farkı, JavaScript render’ının sunucu tarafında halledilmesi. Bu, trafilatura’nın bilerek atladığı kısmın ta kendisi. /extract ise tanımladığınız şemaya karşı yapılandırılmış JSON döndürüyor; bu da trafilatura’nın tasarım gereği reddettiği taraf. 478 karakter düz metin olarak gelen katalog, extract için başvuracağınız örnek olur. AI ajanları ve kodlama yardımcıları için, alan önerme aracı ücretsiz denenebilen bir MCP sunucusu var; terminal, CI ve cron işleri içinse npx @thunderbit/thunderbit-cli üzerinden bir CLI mevcut. Bu altyapı, Thunderbit Chrome Extension ile aynı motoru kullanıyor ve bu uzantıyı 100.000’den fazla kişi kullanıyor; yani teknik olmayan yol da mevcut. Ancak bu kitle için asıl ilgili yüzey API, MCP ve CLI.

Dolayısıyla asıl ödün aslında hiçbir zaman metin çıkarım kalitesi değildi — trafilatura, tasarlandığı sayfalarda bu yarışı kazanıyor ve bunu açıkça söylüyorum. Mesele kapsam ve tarayıcıyı kimin çalıştırdığı. Statik HTML’den temiz makale metni mi gerekiyor, kendiniz barındırmak istiyorsunuz ve çağrı başına sıfır maliyet arıyorsunuz? trafilatura daha hafif ve daha keskin araç, net. Şemaya bağlı yapılandırılmış JSON mu gerekiyor ya da sayfa yalnızca JavaScript çalıştıktan sonra mı render oluyor? O zaman yönetilen yığın doğru alan ve trafilatura’nın girmeye çalıştığı bir kavga değil. Yönetilen tarafın fiyatlarını, kendi başınıza render motoru işletmenin maliyetini karşılaştırıyorsanız Thunderbit pricing page üzerinden görebilirsiniz.

Kategori genelinde seçenekleri tartıyorsanız, kullandığım araçları bir araya getiren web scraping tools I actually use karşılaştırmamı da düzenli olarak güncelliyorum; burada bu tür kütüphaneleri tarayıcı tabanlı ve yönetilen alternatiflerle yan yana koyuyorum.

Sonuç

trafilatura’yı kullanmalı mısınız? Evet — eğer işiniz kirli HTML’i temiz makale metnine çevirmekse ve özellikle yapmayacağı iki şeyi net biçimde kabul ediyorsanız. Tek, hafif bir kurulumla; tarayıcıya ihtiyaç duymadan; bir sayfadaki tüm şablon kalıntılarını temizledi ve başlığı, üç paragrafın üçünü, yazarı ve tarihi geri verdi. txt, Markdown ve JSON’u birlikte üretiyor; bu da onu gerçekten LLM-ready bir metin adımı yapıyor. Her şeyi yapmak için headless browser ve AI crawler gerektiğine inanan bir alanda, tarayıcı açmayan araç benim için önemli temizliği yaptı.

Ama boyutunu doğru belirleyin. Bu bir çıkarıcıdır, yapılandırılmış scraper değil — katalog, 12 isim metin ve 0 satır olarak döndü. Statik HTML okur ve JavaScript çalıştırmaz. Metadata çıkarımı bazı sayfalarda güçlü, bazılarında eksik kalıyor (denediğim gerçek makale örneklerinin ikisinde de yazar ve site adı null geldi). Ayrıca açık metin testim gerçek bir haber makalesine değil, ürün açıklaması bloğuna dayanıyordu; bu yüzden haber odası kalitesindeki iddiayı kesinleşmiş değil, umut verici olarak değerlendirin. Bu sınırlar içinde trafilatura, karşılaştırdığım daha ağır araçlardan daha temiz iş çıkarıyor — ve bunu neredeyse hiçbir şey kurmadan yapıyor.

Web Veri Çıkarımı için Thunderbit’i Deneyin Get Started Free

Sık Sorulan Sorular

trafilatura bir sayfadan tam olarak ne çıkarır?
Ana içerik — yani makale gövdesi, başlık ve yazar ile tarih gibi metadata — ve bunları şablon kalıntılarından arındırır. Testimde, nav, login, subscribe ve copyright gürültüsüyle çevrili bir sayfadan başlığı ve 3/3 gövde paragrafını geri verdi; bu işaretlerin hiçbiri çıktıda yoktu. Neyin içerik sayılacağına sezgisel kurallarla karar verir, bu yüzden daha önce görmediği bir sayfayı temizlemek için siteye özel seçicilere ihtiyaç duymaz.

trafilatura bir ürün kataloğunu yapılandırılmış satırlara çıkarabilir mi?
Hayır. Bu bir içerik ayıklayıcıdır, yapılandırılmış scraper değil. 12 ürünlü bir katalog örneğinde tüm 12 ürün adını düz metin olarak (478 karakter) döndürdü ve 0 yapılandırılmış satır verdi — isimler çıktıdadır ama alan değildir. Eğer name/price/rating gibi tiplenmiş kayıtlar istiyorsanız, seçici tabanlı bir parser veya şema odaklı bir çıkarım API’si kullanın.

trafilatura JavaScript render eder mi?
Hayır. Yalnızca statik HTML tüketir. Client-render edilen bir sayfaya yönelttiğinizde, JavaScript çalışmadan önce sunucunun gönderdiği şeyi alırsınız; bu da çoğu zaman aradığınız içerik değildir. Hedefleriniz JS ağırlıklıysa, yanına ayrı bir render aracı koyun; trafilatura statik belgeyi okur ve durur.

trafilatura’nın kurulumu zor mu?
Hayır — güçlü yanlarından biri bu. pip install trafilatura, Python 3.14’te yeni bir sanal ortamda tek ve temiz bir paket ağacı kurdu; tarayıcı indirmesi, kurulum sonrası adım ya da gizli ekstra grup yoktu. pip’in kurduğu sürüm (2.1.0), 2026-06-07’de yayımlanan güncel sürümle aynı.

trafilatura diğer çıkarıcılara kıyasla ne kadar doğru?
Bu incelemede doğruluk için benchmark yapmadım; o yüzden dış kanıta işaret edeyim. trafilatura kendi evaluation page sayfasını yayımlıyor ve ScrapingHub article-extraction benchmark içinde readability-lxml (~0.887) gibi rakiplere karşı en yüksek açık kaynak F1 değerini (yaklaşık 0.945) bildiriyor. Ancak bu değer, benim test ettiğim 2.1.0 değil, daha eski 0.5.1 hattına ait benchmark sonucudur — bu yüzden bunu makaledeki bir ölçüm değil, aracın itibarı için dış kanıt olarak okuyun.

Ke
Ke
Thunderbit’ta CTO | Kıdemli Veri Bilimci ve ML Uzmanı Makine öğrenimi ve veri bilimi alanında yaklaşık on yıllık deneyime sahip olan Ke Shen, Columbia University mezunu ve Walmart Labs’te eski Kıdemli Veri Bilimci’dir. Python, R, Java ve İstatistik konularında derin ve meslektaşları tarafından tanınan uzmanlığıyla, karmaşık yapay zekâ algoritmalarını teoriden üretim düzeyinde mimariye taşıma konusunda sahada test edilmiş içgörüler paylaşır.

Thunderbit'i dene

Potansiyel müşterileri ve diğer verileri sadece 2 tıkla topla. Yapay zekâ destekli.

Thunderbit'i al Ücretsiz
Yapay Zekâ ile Veri Çıkar
Verileri kolayca Google Sheets, Airtable veya Notion'a aktar
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week