Narzędzie do ekstrakcji artykułów bez otwierania przeglądarki — a mimo to świetnie oczyściło moje testowe strony

Ostatnia aktualizacja: July 17, 2026
Narzędzie do ekstrakcji artykułów bez otwierania przeglądarki — a mimo to świetnie oczyściło moje testowe strony
Podsumowanie AI
Ta recenzja trafilatura pokazuje tę bibliotekę jako wyspecjalizowany ekstraktor treści artykułów, a nie przeglądarkę, crawler ani scraper strukturalny. Ocenia, jak dobrze trafilatura usuwa boilerplate ze statycznego HTML-a, zachowując tytuł, autora, datę i akapity tekstu. Recenzja omawia też wyjście w wielu formatach, lekką instalację, szybkość działania, granice błędów oraz to, dlaczego narzędzie nie nadaje się do katalogów produktów ani swobodnej ekstrakcji pól. To przydatny punkt odniesienia dla zespołów, które potrzebują czystego tekstu artykułów do wyszukiwania, analizy lub pipeline’ów LLM bez instalowania headless browsera czy pisania selektorów dla każdej witryny.

Większość narzędzi do scrapowania, które w tym roku przyciągają uwagę, chce uruchamiać przeglądarkę. trafilatura nie musi. To biblioteka napisana w czystym Pythonie, która czyta statyczny HTML, rozpoznaje, które fragmenty są właściwym artykułem, a resztę odrzuca. Ten wąski zakres działania — ekstrakcja głównej treści — jest dokładnie tym, do czego została stworzona, i robi to jeszcze od czasów, gdy nikt nie mówił o „markdownie gotowym dla LLM”.

Przepuściłem wersję 2.1.0 przez stały zestaw testów na Pythonie 3.14, a jeden sprawdzian szczególnie zapadł mi w pamięć. Owinąłem prawdziwy tekst typowymi elementami strony — komunikatem logowania, nachalnym „Subscribe”, linkami nawigacyjnymi, stopką copyright — a trafilatura zwróciła tytuł, wszystkie trzy akapity treści, autora i datę, usuwając po drodze każdy z tych szablonowych elementów. Bez przeglądarki, bez reguł dla konkretnej witryny, jedno wywołanie funkcji. Jest jednak pewien haczyk i zaraz do niego wrócę: to ograniczenie projektowe, nie wada.

Czym jest trafilatura i jakie założenie warto porzucić

Oficjalny opis mówi, że to „narzędzie w Pythonie i z linii poleceń do pozyskiwania tekstu i metadanych z Web: crawling, scraping, extraction”, z wyjściem do CSV, JSON, HTML, Markdown, TXT albo XML. To szerokie ujęcie, ale nie oddaje tego, co naprawdę wyróżnia to narzędzie. Wartość nie leży w pomocnikach do crawlownia ani w sześciu formatach wyjściowych. Chodzi o ekstrakcję treści: dokument HTML wchodzi, główny tekst artykułu wychodzi, a całe „chrome” strony znika.

Warto przyjąć taki model myślenia, bo od razu pokazuje zarówno siłę, jak i granicę tego rozwiązania. Większość scraperów jest oparta na selektorach. Mówisz im: „pobierz element z klasą product-price”, a one zwracają to, co siedzi pod tym adresem. trafilatura działa odwrotnie. Czyta cały dokument i decyduje, które bloki są treścią artykułu, a które są szablonowym wypełniaczem, używając heurystyk zamiast ręcznie napisanych selektorów. Dlatego nie potrzebuje konfiguracji dla każdej witryny, aby wyczyścić stronę, której nigdy wcześniej nie widziała. I właśnie dlatego nie potrafi zwrócić ustrukturyzowanego katalogu: nie ma tu schematu ani mapy pól, tylko ocena, co zalicza się do treści. To ekstraktor, nie parser „na celowniku”.

Jest też naprawdę lekka. Czysty Python, bez headless browsera, bez binarki Chromium leżącej w cache, bez instalacji Playwrighta, która czeka, by zaskoczyć przy pierwszym uruchomieniu. Ta cecha brzmi niepozornie, dopóki nie uruchamiasz ekstrakcji na tysiącach URL-i i każdy megabajt zależności oraz każdy proces pomocniczy staje się czymś, co trzeba obsługiwać. To mniej więcej projekt z 6,26 tys. gwiazdek na dzień 2026-07-09 (adbar/trafilatura) — repo znacznie mniejsze niż frameworki do przeglądarek i crawlownia, z którymi bywa wrzucane do jednego worka. To informacja o zakresie, nie przytyk do jakości.

Instalacja jest krótka — i to już sama w sobie recenzja

Instalacja to jedna linijka i nie ma tu niczego, przed czym trzeba by ostrzegać — co samo w sobie jest warte odnotowania. pip install trafilatura w czystym virtualenv na Pythonie 3.14 pobrał jedną, przejrzystą strukturę pakietów: bez pobierania przeglądarki, bez kroku po instalacji, bez lawiny zależności zagnieżdżonych. Widziałem już tyle takich bibliotek, że zwykle czekam na drugi but: 150 MB paczki przeglądarki odkrywanej przy pierwszym uruchomieniu, natywny extension, którego nie da się skompilować, dodatkową grupę [fetchers], o której nikt nie wspomniał. W przypadku trafilatura ten but nie spadł.

Wersja, którą dostał mi pip (2.1.0), zgadza się z aktualnym wydaniem opublikowanym 2026-06-07, więc żaden z poniższych wyników nie ma gwiazdki w stylu „testowano na nieaktualnej wersji”. W tej kategorii to wcale nie jest oczywiste — wiele cięższych narzędzi, które sprawdzałem, było już o jedną dużą wersję w tyle w momencie testów. Tutaj build testowany i build dostępny publicznie są tym samym.

Praktyka: co faktycznie zwrócił ekstraktor

Przetestowałem trafilatura na zestawie fixture’ów przygotowanych tak, by sprawdzić zarówno jej mocną stronę, jak i ograniczenia. Najbardziej miarodajny okazał się test artykułu.

trafilatura boilerplate cleanup

Wziąłem lokalny fixture z artykułem i zakopałem prawdziwą treść pod szumem — okienkiem logowania, przyciskiem „Subscribe”, linkami nawigacyjnymi i stopką copyright, czyli dokładnie takim boilerplate’em, który naiwny scraper zwykle zbiera razem z body. trafilatura zwróciła tytuł oraz wszystkie 3 z 3 akapitów, a każdy z unikalnych znaczników szablonowych — Login, Subscribe, Copyright — zniknął z wyniku. Dodatkowo poprawnie pobrała autora i datę z metadanych strony. Wynik dało się uzyskać w .txt, .md i .json z jednego wywołania.

trafilatura title and 3/3 paragraphs retained

Ten aspekt wieloformatowy warto podkreślić. Jedna ekstrakcja dała zwykły tekst, Markdown i JSON. Ścieżka Markdown to właśnie ten krok „LLM-ready text”, do którego wszyscy teraz dążą: wrzucasz chaotyczną stronę, dostajesz czystą prozę z zachowaną strukturą, przekazujesz ją modelowi. trafilatura robi to bez udziału przeglądarki, co jest cichszą drogą do tego samego efektu niż rozwiązania, które odpalają pełny stos renderujący.

Potem sprawdzenie publiczne. Wskazałem jej stronę produktu na żywym serwisie — stronę produktu z Books to Scrape — a ona zwróciła 1 324 znaki czystego tekstu oraz Markdown: blok opisu, czytelny, bez otoczki strony. A gdy podałem stronę zwracającą HTTP 500, fetch_url zwróciło None zamiast rzucać wyjątkiem. Bez awarii, bez stack trace’a do łapania. Takie nudne, ale poprawne zachowanie przy błędzie właśnie chcesz mieć w narzędziu działającym bez nadzoru według harmonogramu.

Zastrzeżenia

Trzy — i każde zawęża, gdzie to narzędzie ma sens.

trafilatura catalog text-only boundary

Po pierwsze i najważniejsze: trafilatura to ekstraktor treści, a nie scraper strukturalny. Uruchomiłem ją na fixture’ze katalogu z 12 produktami. Zwróciła wszystkie 12 nazw produktów — jako tekst — i dokładnie 0 ustrukturyzowanych wierszy (478 znaków płaskiego tekstu). Nazwy i ceny są w wyniku, ale nie jako pola. Jeśli potrzebujesz [{name, price, rating}, …], to nie jest właściwe narzędzie i żaden przełącznik konfiguracyjny tego nie zmieni. To świadomy wybór projektowy dotyczący przeznaczenia narzędzia, a nie błąd do zgłoszenia.

trafilatura no JavaScript render boundary

Po drugie: nie renderuje JavaScriptu. Pracuje na statycznym HTML-u. Jeśli wskażesz jej aplikację SPA renderowaną po stronie klienta, dostaniesz to, co serwer wysłał przed uruchomieniem JS-a, a to często nie jest nic użytecznego. Jeśli twoje źródła są mocno oparte na JS, połącz ją z renderującym narzędziem — trafilatura tej części za ciebie nie zrobi i nawet tego nie obiecuje.

Po trzecie, zastrzeżenie dotyczące moich własnych danych. Publiczny test ekstrakcji opisany wyżej opierał się na bloku opisu produktu, a nie na prawdziwym artykule newsowym, ponieważ publiczny sandbox, z którego korzystałem (rodzina toscrape), zawiera wyłącznie katalogi i nie ma stron z wiadomościami. Czysty wynik czyszczenia artykułu pochodzi z kontrolowanego lokalnego fixture’a. Ufaj tym wynikom — usunięcie boilerplate’u jest jednoznaczne i powtarzalne — ale strona produktu nie dowodzi jakości ekstrakcji na poziomie redakcyjnym, więc nie będę tego tak przedstawiał.

Żeby częściowo domknąć tę lukę, wykonałem osobną, celowo niepunktowaną demonstrację na dwóch prawdziwych stronach artykułów, czytając zapisane fixture’y, żeby przebieg był deterministyczny. Na artykule Wikipedii „Web scraping” trafilatura zmniejszyła treść z 230 049 bajtów surowego HTML do 26 673 bajtów wyekstrahowanej zawartości (stosunek body do surowego wyniósł 0,116), a wszystkie cztery sprawdzone znaczniki chrome strony — „Jump to content”, „Privacy policy”, „Powered by MediaWiki”, „This page was last edited” — zniknęły. Na zarchiwizowanym artykule Wikinews było 79 716 bajtów wejścia i 2 200 bajtów wyniku (stosunek 0,028), a wszystkie pięć sprawdzonych znaczników zostało usuniętych. Tytuł, data i hostname pojawiły się poprawnie w obu przypadkach; autor i sitename zwróciły null w obu, i podaję to wprost zamiast ukrywać. Dwie rzeczy warto tu odróżnić: ten stosunek bajtów pokazuje, ile znaczników i chrome zostało usunięte, nie dokładność ekstrakcji, a oba przykłady pochodzą z tej samej rodziny MediaWiki, więc to demonstracja na prawdziwych artykułach, a nie reprezentatywny korpus.

Jeśli chodzi o samą dokładność, wolę wskazać na zewnętrzne źródła, zamiast udawać, że sam to zbenchmarkowałem. trafilatura publikuje własną stronę ewaluacyjną i osiąga najwyższy open-source’owy F1 (około 0,945) w benchmarku ScrapingHub dla ekstrakcji artykułów, wyprzedzając porównywane narzędzia, takie jak readability-lxml (~0,887). Dwie uczciwe uwagi do tej liczby: pochodzi z tego benchmarku, nie z moich testów, i wskazywane ~0,945 dotyczy starszej linii 0.5.1 w źródle, a nie testowanej przeze mnie 2.1.0. Traktuj to jako zewnętrzny dowód na reputację narzędzia, a nie jako pomiar z tej recenzji.

Plusy i minusy

Plusy:

  • Najczystsza ekstrakcja artykułów w moim zestawie — tytuł plus wszystkie 3 z 3 akapitów, bez żadnego boilerplate’u (Login/Subscribe/Copyright).
  • Poprawnie pobiera metadane autora i daty razem z treścią.
  • Wieloformatowy wynik z jednego wywołania: txt, Markdown i JSON — Markdown to naprawdę użyteczny krok do tekstu gotowego dla LLM.
  • Lekka, czysta instalacja w Pythonie — bez przeglądarki, bez pobierania binarki, bez ściany zależności.
  • Łagodne działanie przy błędzie: fetch_url zwraca None przy HTTP 500 zamiast rzucać wyjątkiem.
  • Testowana wersja jest zgodna z aktualnym wydaniem (2.1.0) — bez rozjazdu wersji.
  • Licencja Apache-2.0 — liberalna i przyjazna komercyjnie.

Minusy:

  • To nie jest scraper strukturalny: test katalogu zwrócił 12 nazw jako tekst i 0 typowanych wierszy. Bez schematu, bez pól.
  • Brak renderowania JavaScriptu — tylko statyczny HTML; do stron renderowanych po stronie klienta potrzebny jest osobny renderer.
  • Metadane bywają niepełne: autor i sitename zwróciły null w obu testowych, prawdziwych artykułach.
  • Mój publiczny test prozy opierał się na bloku opisu produktu, a nie na prawdziwym artykule newsowym.
  • Wbudowanego spidera do crawlownia/sitemap oraz formatów CSV/XML nie testowałem w tym przebiegu, więc nie wyciągam na ich temat żadnych wniosków.

Dla kogo to jest — a kto powinien odpuścić

trafilatura jest skierowana dokładnie do osoby, której problem brzmi: „mam URL-e i chcę czysty tekst artykułu, bez paska nawigacji, bannera cookie i prośby o zapis do newslettera”. Budowanie korpusu tekstowego, podawanie stron modelowi, archiwizacja czytelnych treści, analiza NLP na artykułach webowych — to jest jej teren i sprawdza się tam bardzo dobrze. Jeśli potrzebujesz lekkiego kroku bez przeglądarki, który zamienia brudny HTML na czysty Markdown albo JSON, zainstaluj ją i jedź dalej.

Opuść ją, jeśli tak naprawdę potrzebujesz ekstrakcji strukturalnej: wierszy produktów z cenami, rekordów z typami, pól key: value. Dostajesz tekst, nie tabelę — test katalogu odzyskał nazwy, ale nie wiersze, i tego to nie zmieni. Opuść ją też wtedy, gdy twoje źródła renderują treść w przeglądarce, a nie chcesz dołączać osobnego renderera, bo trafilatura czyta statyczny HTML i na tym kończy. Tryb awarii nie jest dramatyczny; po prostu dostajesz pusty albo chudy wynik i zastanawiasz się, dlaczego. Dopasuj narzędzie do zadania — tekst artykułu tak; strukturalny JSON albo strony renderowane w JS, szukaj gdzie indziej.

Alternatywy, w tym gdzie pasuje Thunderbit

Wypróbuj Thunderbit do ekstrakcji danych z sieci

Najpierw uczciwe uporządkowanie tematu. trafilatura to darmowa, oparta na licencji Apache-2.0 biblioteka self-hosted, którą uruchamiasz samodzielnie. Kod należy do ciebie, nie płacisz za stronę, a narzędzie jest na tyle lekkie, że można je włożyć w dowolny pipeline bez operacyjnego balastu. W przypadku konkretnego zadania polegającego na oczyszczeniu artykułu do czytelnego tekstu trudno to przebić, i płatna usługa tego werdyktu nie zmienia.

Porównanie zaczyna być interesujące dopiero na granicy, którą trafilatura celowo wyznacza: dane strukturalne i JavaScript. To właśnie dwie rzeczy, których nie robi, a jednocześnie dwie rzeczy, które obsługuje zarządzane API do ekstrakcji. W tym miejscu znajduje się stos deweloperski Thunderbit — po drugiej stronie tej granicy, uzupełniając trafilatura zamiast z nią konkurować o tekst z artykułów ze statycznego HTML-a. Endpoint /distill robi podobny rodzaj pracy jak trafilatura: zamienia stronę w czysty Markdown gotowy dla LLM, ale z renderowaniem JavaScriptu po stronie serwera, czyli dokładnie tę część, którą trafilatura pomija. Z kolei /extract zwraca ustrukturyzowany JSON zgodny z definicją schematu, czyli robi to, czego trafilatura z założenia nie chce robić: katalog, który wrócił jako 478 znaków płaskiego tekstu, to sytuacja, w której sięgnąłbyś po /extract. Dla agentów AI i asystentów kodowania jest jeszcze serwer MCP, którego narzędzie do podpowiadania pól można testować za darmo, oraz CLI dostępne przez npx @thunderbit/thunderbit-cli do pracy w terminalu, CI i cronach. Działa na tym samym silniku co Thunderbit Chrome Extension używane przez ponad 100 000 osób, więc istnieje też ścieżka bez technicznego bagażu, ale dla tej grupy użytkowników istotne są API, MCP i CLI.

Prawdziwy kompromis nigdy nie dotyczył jakości samej ekstrakcji tekstu — trafilatura wygrywa tutaj na stronach, do których została stworzona, i mówię to wprost. Chodzi o zakres i o to, kto uruchamia przeglądarkę. Potrzebujesz czystego tekstu artykułu ze statycznego HTML-a, self-hosted, bez kosztu za każde wywołanie? trafilatura jest lżejszym i ostrzejszym narzędziem, kropka. Potrzebujesz ustrukturyzowanego JSON-a zgodnego ze schematem albo strony, która renderuje się dopiero po uruchomieniu JavaScriptu? To obszar zarządzanego stacku i nie jest to bitwa, którą trafilatura próbuje toczyć. Cennik po stronie zarządzanej znajdziesz na stronie cen Thunderbit, jeśli porównujesz koszt na stronę z samodzielnym utrzymywaniem renderera.

Jeśli porównujesz opcje w całej kategorii, prowadzę aktualne zestawienie narzędzi do web scrapingu, których faktycznie używam, gdzie takie biblioteki stoją obok alternatyw opartych o przeglądarkę i usług zarządzanych.

Werdykt

Czy warto używać trafilatura? Tak — jeśli twoim zadaniem jest zamiana brudnego HTML-a w czysty tekst artykułu i masz świadomość dwóch rzeczy, których narzędzie celowo nie robi. Usuwa z strony każdy ślad boilerplate’u i zwraca tytuł, wszystkie trzy akapity oraz autora i datę z jednej lekkiej instalacji, bez widocznej przeglądarki. Wypuszcza jednocześnie txt, Markdown i JSON, więc jest pełnoprawnym krokiem do tekstu gotowego dla LLM. W branży przekonanej, że do wszystkiego potrzebny jest headless browser i AI crawler, narzędzie, które nie otwiera żadnej przeglądarki, wykonało czyszczenie, na którym mi zależało.

Trzeba je jednak dobrze osadzić. To ekstraktor, nie scraper strukturalny — katalog wrócił jako 12 nazw tekstowych i 0 wierszy. Czyta statyczny HTML i nie uruchamia JavaScriptu. Jego ekstrakcja metadanych bywa bardzo dobra na jednych stronach, a częściowa na innych (autor i sitename zwróciły null w obu sprawdzonych przeze mnie fixture’ach z prawdziwymi artykułami). A mój publiczny test prozy opierał się na bloku opisu produktu, a nie na prawdziwym artykule newsowym, więc traktuj wniosek o jakości „redakcyjnej” jako obiecujący, ale jeszcze nie ostateczny. W tych granicach trafilatura robi jedną rzecz czyściej niż cięższe narzędzia, z którymi ją porównywałem — i robi ją niemal bez instalowania czegokolwiek.

Wypróbuj Thunderbit do ekstrakcji danych z sieci Get Started Free

FAQ

Co trafilatura właściwie wyciąga ze strony? Główną treść — treść artykułu, tytuł oraz metadane, takie jak autor i data — po usunięciu boilerplate’u. W moim teście zwróciła tytuł i wszystkie 3 z 3 akapitów z strony otoczonej szumem nawigacji, logowania, subskrypcji i copyright, a każdy z tych znaczników zniknął z wyniku. Decyduje, co jest treścią, używając heurystyk, więc nie potrzebuje selektorów dla konkretnej witryny, aby wyczyścić stronę, której wcześniej nie widziała.

Czy trafilatura może scrapować katalog produktów do ustrukturyzowanych wierszy? Nie. To ekstraktor treści, a nie scraper strukturalny. Na fixture’ze katalogu z 12 produktami zwróciła wszystkie 12 nazw jako płaski tekst (478 znaków) i 0 ustrukturyzowanych wierszy — nazwy są w wyniku, ale nie jako pola. Jeśli potrzebujesz rekordów z typami, takich jak nazwa/cena/ocena, użyj parsera opartego na selektorach albo API do ekstrakcji sterowanej schematem.

Czy trafilatura renderuje JavaScript? Nie. Obsługuje wyłącznie statyczny HTML. Jeśli wskażesz jej stronę renderowaną po stronie klienta, dostaniesz to, co serwer wysłał przed uruchomieniem JavaScriptu, a to często nie jest treść, której szukasz. Jeśli twoje źródła mocno polegają na JS, połącz ją z osobnym rendererem; trafilatura czyta statyczny dokument i na tym kończy.

Czy trafilatura jest trudna do zainstalowania? Nie — to jeden z jej prawdziwych atutów. pip install trafilatura pobrał jedną, czystą strukturę pakietów w świeżym virtualenv na Pythonie 3.14, bez pobierania przeglądarki, bez kroku po instalacji i bez ukrytej grupy dodatków. Wersja, którą zainstalował pip (2.1.0), odpowiada aktualnemu wydaniu opublikowanemu 2026-06-07.

Jak trafilatura wypada pod względem dokładności na tle innych ekstraktorów? Nie benchmarkowałem dokładności w tej recenzji, więc odwołam się do zewnętrznych danych. trafilatura publikuje stronę ewaluacyjną i podaje najwyższy open-source’owy F1 (około 0,945) w benchmarku ScrapingHub dla ekstrakcji artykułów, wyprzedzając porównywane narzędzia, takie jak readability-lxml (~0,887). Pamiętaj jednak, że ta liczba pochodzi z tamtego benchmarku na starszej linii 0.5.1, a nie z testowanej przeze mnie 2.1.0 — traktuj ją więc jako zewnętrzny dowód na reputację narzędzia, a nie jako pomiar z tego artykułu.

Ke
Ke
CTO w Thunderbit | Starszy data scientist i ekspert ML Dzięki prawie dziesięciu latom doświadczenia w uczeniu maszynowym i data science, Ke Shen jest absolwentem Columbia University i byłym starszym data scientistą w Walmart Labs. Dysponując dogłębną, uznaną przez branżowych ekspertów wiedzą w zakresie Python, R, Java i statystyki, dzieli się sprawdzonymi w boju spostrzeżeniami na temat wdrażania złożonych algorytmów AI — od teorii po architekturę gotową do produkcji.

Wypróbuj Thunderbit

Zbieraj leady i inne dane w zaledwie 2 kliknięcia. Wspierane przez AI.

Pobierz Thunderbit To darmowe
Wyciągaj dane z użyciem AI
Łatwo przenoś dane do Google Sheets, Airtable lub Notion
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week