Kilka miesięcy temu jeden z naszych użytkowników wysłał nam zrzut ekranu workflowu w n8n z 14 węzłami, kilkoma karteczkami przypiętymi do tablicy i tematem wiadomości, który brzmiał po prostu: „Pomoc”. Zastosował popularny poradnik do web scrapingu w n8n, uruchomił ładną demonstrację z 10 wierszami na testowej stronie, a potem spróbował pobrać realne ceny konkurencji z 200 stron produktowych. Efekt? Rozsypana pętla paginacji, ściana błędów 403 i cichy harmonogram, który przestał działać po pierwszym wtorku.
Ta przepaść — między demo a działającym procesem — to miejsce, w którym większość projektów scrapujących w n8n umiera. Od lat buduję i pracuję w automatyzacji, więc mogę powiedzieć jedno: samo pobranie danych rzadko jest najtrudniejsze. Prawdziwe problemy zaczynają się po pierwszym udanym scrapingu. Paginacja, harmonogramy, zabezpieczenia anty-botowe, czyszczenie danych, eksport i — najważniejsze — utrzymanie, gdy strona po raz trzeci w tym kwartale zmienia układ. Ten przewodnik obejmuje cały proces: od pierwszego węzła HTTP Request po cykliczny, gotowy do produkcji workflow web scrapingu w n8n. A tam, gdzie podejście DIY w n8n dochodzi do ściany, pokażę, jak narzędzia oparte na AI, takie jak Thunderbit, mogą oszczędzić Ci godzin, a nawet dni frustracji.
Czym jest web scraping w n8n i dlaczego większość poradników pokazuje tylko fragment obrazu
n8n to platforma open-source do automatyzacji workflowów w modelu low-code. Najprościej mówiąc: to wizualne płótno, na którym łączysz „węzły” — każdy wykonuje konkretną czynność (pobiera stronę, analizuje HTML, wysyła wiadomość do Slacka, zapisuje dane do Google Sheets) — i składasz je w zautomatyzowane procesy. Nie potrzeba ciężkiego kodowania, choć w razie potrzeby możesz wstawić JavaScript.
„Web scraping w n8n” oznacza użycie wbudowanych węzłów HTTP Request i HTML (oraz węzłów społeczności) do pobierania, analizowania i przetwarzania danych ze stron internetowych w ramach tych automatycznych workflowów. Rdzeń procesu składa się z dwóch kroków: Pobranie (węzeł HTTP Request pobiera surowy HTML z adresu URL) oraz Analiza (węzeł HTML używa selektorów CSS, aby wyciągnąć interesujące Cię dane — nazwy produktów, ceny, e-maile i wszystko inne).
Skala platformy jest ogromna: według stanu na kwiecień 2026 n8n ma , ponad 230 000 aktywnych użytkowników, 9166+ społecznościowych szablonów workflowów i wydaje nową mniejszą wersję mniej więcej co tydzień. W marcu 2025 pozyskało . Jest tu spory rozpęd.
Ale istnieje luka, o której nikt głośno nie mówi. Najpopularniejszy poradnik do scrapingu w n8n na dev.to (autorstwa Lakshay Nasa, opublikowany pod organizacją „Extract by Zyte”) obiecywał paginację w „części 2”. Część 2 rzeczywiście się pojawiła — a wnioski autora brzmiały: „N8N daje nam domyślny tryb Pagination w węźle HTTP Request w sekcji Options i choć brzmi to wygodnie, w moim doświadczeniu nie działało niezawodnie w typowych zastosowaniach web scrapingu.” Autor ostatecznie skierował paginację przez płatne API zewnętrzne. Tymczasem użytkownicy forum n8n nadal wskazują „paginację, ograniczanie ruchu, logowanie” jako moment, w którym scraping w n8n „łatwo się komplikuje”. Ten przewodnik powstał właśnie po to, by wypełnić tę lukę.
Dlaczego web scraping w n8n ma znaczenie dla zespołów sprzedaży, operacji i e-commerce
Web scraping w n8n to nie jest hobby programisty. To narzędzie biznesowe. osiągnął w 2025 roku wartość około 1–1,3 mld dolarów i według prognoz wzrośnie do 2–2,3 mld dolarów do 2030 roku. Sama dynamiczna polityka cenowa jest wykorzystywana przez około , a korzysta dziś z danych alternatywnych — w dużej mierze pozyskiwanych z sieci. McKinsey podaje, że dynamic pricing daje u firm, które go wdrażają.
Oto, gdzie naprawdę błyszczy n8n: nie chodzi tylko o samo pobieranie danych. Chodzi o to, co dzieje się dalej. n8n pozwala połączyć scraping z kolejnymi działaniami — aktualizacją CRM, alertami Slack, eksportem do arkuszy, analizą AI — w jednym workflowie.
| Przykład użycia | Kto zyskuje | Co scrapujesz | Efekt biznesowy |
|---|---|---|---|
| Pozyskiwanie leadów | Zespoły sprzedaży | Katalogi firm, strony kontaktowe | Zapełnienie CRM kwalifikowanymi leadami |
| Monitorowanie cen konkurencji | Zespoły e-commerce | Strony z listą produktów | Dostosowanie cen w czasie rzeczywistym |
| Śledzenie ofert nieruchomości | Pośrednicy nieruchomości | Zillow, Realtor, lokalne serwisy MLS | Wyłapywanie nowych ofert przed konkurencją |
| Badania rynku | Zespoły marketingu | Serwisy z opiniami, fora, newsy | Wykrywanie trendów i nastrojów klientów |
| Monitorowanie stanów magazynowych dostawców/SKU | Operacje łańcucha dostaw | Strony produktowe dostawców | Unikanie braków magazynowych, lepsze zakupy |
Dane pokazują, że zwrot z inwestycji jest realny: planuje zwiększyć inwestycje w AI w 2025 roku, a automatyczne nurturing leadów zwiększył pipeline o w ciągu dziewięciu miesięcy. Jeśli Twój zespół nadal kopiuje dane ze stron do arkuszy ręcznie, zostawiasz pieniądze na stole.
Zestaw narzędzi do web scrapingu w n8n: kluczowe węzły i dostępne rozwiązania
Zanim cokolwiek zbudujesz, warto wiedzieć, co masz do dyspozycji. Oto podstawowe węzły n8n do web scrapingu:
- HTTP Request: pobiera surowy HTML z dowolnego URL-a. Działa jak przeglądarka wysyłająca żądanie strony, ale zwraca kod zamiast renderować widok. Obsługuje GET/POST, nagłówki, batching i — przynajmniej teoretycznie — wbudowaną paginację.
- HTML (wcześniej „HTML Extract”): analizuje HTML z użyciem selektorów CSS, aby wyciągnąć konkretne dane — tytuły, ceny, linki, obrazy i wszystko, czego potrzebujesz.
- Code: pozwala pisać fragmenty JavaScript do czyszczenia danych, normalizacji URL-i, usuwania duplikatów i tworzenia niestandardowej logiki.
- Edit Fields (Set): przebudowuje lub zmienia nazwy pól danych dla kolejnych węzłów.
- Split Out: rozbija tablice na pojedyncze elementy do dalszego przetwarzania.
- Convert to File: eksportuje dane strukturalne do CSV, JSON itd.
- Loop Over Items: iteruje po listach (kluczowe przy paginacji — więcej o tym niżej).
- Schedule Trigger: uruchamia workflow według harmonogramu cron.
- Error Trigger: wysyła alert, gdy workflow zakończy się błędem (niezbędne w produkcji).
Do zaawansowanego scrapingu — stron z renderowaniem JavaScriptu lub mocną ochroną anty-botową — potrzebne będą węzły społeczności:
| Podejście | Najlepsze zastosowanie | Poziom trudności | Obsługa stron renderowanych w JS | Obsługa anty-botowa |
|---|---|---|---|---|
| n8n HTTP Request + HTML | Strony statyczne, API | Początkujący–średnio zaawansowany | Nie | Ręczna (nagłówki, proxy) |
| n8n + community node ScrapeNinja/Firecrawl | Strony dynamiczne/zabezpieczone | Średnio zaawansowany | Tak | Wbudowana (rotacja proxy, CAPTCHA) |
| n8n + headless browser (Puppeteer) | Złożone interakcje JS | Zaawansowany | Tak | Częściowa (zależnie od konfiguracji) |
| Thunderbit (AI Web Scraper) | Dowolna strona, użytkownicy nietechniczni | Początkujący | Tak (tryb Browser lub Cloud) | Wbudowana (dziedziczy sesję przeglądarki lub obsługę chmurową) |
Na dzień v2.15.1 n8n nie ma natywnego węzła headless browser. Każdy scraping stron renderowanych w JS wymaga albo community node, albo zewnętrznego API.
Krótko o Thunderbit: to oparta na AI , które stworzył nasz zespół. Klikasz „AI Suggest Fields”, potem „Scrape” i dostajesz dane w uporządkowanej formie — bez selektorów CSS, bez konfiguracji węzłów, bez utrzymania. W tym przewodniku pokażę, gdzie Thunderbit pasuje najlepiej, a gdzie n8n pozostaje lepszym wyborem.
Krok po kroku: zbuduj swój pierwszy workflow web scrapingu w n8n
Skoro znamy już zestaw narzędzi, pokażę, jak od zera zbudować działający scraper w n8n. Jako przykład wezmę stronę z listą produktów — dokładnie taki typ strony, jaki scrapuje się do monitorowania cen albo analizy konkurencji.
Zanim zaczniesz:
- Poziom trudności: początkujący–średnio zaawansowany
- Szacowany czas: około 20–30 minut
- Czego potrzebujesz: n8n (self-hosted lub Cloud), docelowy URL, przeglądarka Chrome (do znajdowania selektorów CSS)
Krok 1: utwórz nowy workflow i dodaj ręczny trigger
Otwórz n8n, kliknij „New Workflow” i nadaj mu opisową nazwę — na przykład „Competitor Price Scraper”. Przeciągnij węzeł Manual Trigger. (Później zmienimy go na trigger harmonogramu.)
Na płótnie powinien pojawić się pojedynczy węzeł, gotowy do uruchomienia po kliknięciu „Test Workflow”.
Krok 2: pobierz stronę za pomocą węzła HTTP Request
Dodaj węzeł HTTP Request i połącz go z Manual Trigger. Ustaw metodę na GET i wpisz docelowy URL (np. https://example.com/products).
Teraz kluczowy krok, który większość poradników pomija: dodaj realistyczny nagłówek User-Agent. Domyślnie n8n wysyła axios/xx jako user agent — a to natychmiast zdradza bota. W sekcji „Headers” dodaj:
| Nazwa nagłówka | Wartość |
|---|---|
| User-Agent | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 |
| Accept | text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 |
Jeśli scrapujesz wiele URL-i, włącz Batching (w sekcji Options) i ustaw opóźnienie 1–3 sekund między żądaniami. To pomaga uniknąć limitów zapytań.
Uruchom węzeł. Powinieneś zobaczyć surowy HTML w panelu wyników.
Krok 3: przeanalizuj dane za pomocą węzła HTML
Połącz węzeł HTML z wyjściem HTTP Request. Ustaw operację na Extract HTML Content.
Aby znaleźć właściwe selektory CSS, otwórz docelową stronę w Chrome, kliknij prawym przyciskiem element z danymi, które chcesz pobrać (np. tytuł produktu), i wybierz „Inspect”. W panelu Elements kliknij prawym przyciskiem podświetlony element HTML i wybierz „Copy → Copy selector”.
Skonfiguruj wartości ekstrakcji w ten sposób:
| Klucz | Selektor CSS | Zwracana wartość |
|---|---|---|
| product_name | .product-title | Tekst |
| price | .price-current | Tekst |
| url | .product-link | Atrybut: href |
Uruchom węzeł. Powinieneś zobaczyć tabelę uporządkowanych danych — nazwy produktów, ceny i URL-e — w wynikach.
Krok 4: oczyść i znormalizuj dane w węźle Code
Surowe dane po scrapingu są zwykle chaotyczne. Ceny zawierają dodatkowe spacje, URL-e mogą być względne, a pola tekstowe mają końcowe znaki nowej linii. Dodaj węzeł Code i połącz go z węzłem HTML.
Oto prosty fragment JavaScriptu do porządkowania danych:
1return items.map(item => {
2 const d = item.json;
3 return {
4 json: {
5 product_name: (d.product_name || '').trim(),
6 price: parseFloat((d.price || '').replace(/[^0-9.]/g, '')),
7 url: d.url && d.url.startsWith('http') ? d.url : `https://example.com${d.url}`
8 }
9 };
10});
Ten krok jest niezbędny, jeśli zależy Ci na danych jakości produkcyjnej. Pominiesz go i w arkuszu zobaczysz wpisy typu „$ 29.99\n”.
Krok 5: eksportuj do Google Sheets, Airtable lub CSV
Podłącz węzeł Google Sheets (albo Airtable, albo Convert to File dla CSV). Uwierzytelnij się kontem Google, wybierz arkusz i zakładkę, a następnie przypisz pola z wyjścia węzła Code do nagłówków kolumn.
Uruchom cały workflow. Powinieneś zobaczyć czyste, uporządkowane dane w swoim arkuszu.
Na marginesie: do Google Sheets, Airtable, Notion i Excel bez żadnej konfiguracji węzłów. Jeśli nie potrzebujesz całego łańcucha workflowów, a zależy Ci tylko na danych, to bardzo wygodny skrót.
Część, którą pomija każdy poradnik o web scrapingu w n8n: kompletne workflowy paginacji
Paginacja to największa luka w materiałach o scrapingu w n8n — i jednocześnie główne źródło frustracji na forum społeczności n8n.
Są dwa główne wzorce paginacji:
- Paginacja oparta na klikaniu / zwiększaniu numeru strony w URL — strony typu
?page=1,?page=2itd. - Infinite scroll — treść ładuje się podczas przewijania (jak w Twitterze, Instagramie czy wielu nowoczesnych katalogach produktów).
Paginacja oparta na klikaniu w n8n (zwiększanie URL-i przy użyciu pętli)
Wbudowana opcja Pagination w menu Options węzła HTTP Request brzmi wygodnie. W praktyce bywa zawodna. Najpopularniejszy autor poradnika do scrapingu w n8n (Lakshay Nasa) próbował jej użyć i napisał: „w moim doświadczeniu nie działała niezawodnie”. Użytkownicy forum zgłaszają, że , i nie wykrywa ostatniej strony.

Niezawodne podejście: zbuduj listę URL-i jawnie w węźle Code, a potem iteruj po niej za pomocą Loop Over Items.
Jak to zrobić:
- Dodaj węzeł Code, który wygeneruje adresy stron:
1const base = 'https://example.com/products';
2const totalPages = 10; // albo wykryj dynamicznie
3return Array.from({length: totalPages}, (_, i) => ({
4 json: { url: `${base}?page=${i + 1}` }
5}));
- Połącz węzeł Loop Over Items, aby iterować po liście.
- Wewnątrz pętli dodaj węzeł HTTP Request (ustaw URL na
{{ $json.url }}), a potem węzeł HTML do parsowania. - Dodaj węzeł Wait (1–3 sekundy, losowo) wewnątrz pętli, żeby nie wpaść w limity 429.
- Po pętli zsumuj wyniki i wyeksportuj je do Google Sheets lub CSV.
Pełny łańcuch: Code (budowa URL-i) → Loop Over Items → HTTP Request → HTML → Wait → (powrót do pętli) → agregacja → eksport.
Jedna pułapka: węzeł Loop Over Items ma , przez który zagnieżdżone pętle potrafią po cichu pomijać elementy. Jeśli paginujesz i wzbogacasz dane o podstrony, testuj bardzo dokładnie — liczba „done” może nie zgadzać się z liczbą wejściową.
Paginacja typu infinite scroll: dlaczego wbudowane węzły n8n mają z tym problem
Strony z infinite scroll ładują treść przez JavaScript podczas przewijania. Węzeł HTTP Request pobiera tylko początkowy HTML — nie wykonuje JavaScriptu ani nie wyzwala zdarzeń scrolla. Masz dwie opcje:
- Użyć community node headless browser (np. lub ), aby wyrenderować stronę i zasymulować przewijanie.
- Użyć API do scrapingu (ScrapeNinja, Firecrawl, ZenRows) z włączonym renderowaniem JS.
Oba podejścia znacząco zwiększają złożoność. To zwykle 30–60+ minut konfiguracji na jedną stronę, a do tego bieżące utrzymanie.
Jak Thunderbit obsługuje paginację bez konfiguracji
Mam tu naturalnie pewną sympatię, ale różnica jest bardzo wyraźna:
| Możliwość | n8n (workflow DIY) | Thunderbit |
|---|---|---|
| Paginacja oparta na klikaniu | Ręczna konfiguracja węzła pętli, zwiększanie URL-i | Automatycznie — wykrywa i podąża za paginacją |
| Strony z infinite scroll | Wymaga headless browser i community node | Wbudowana obsługa, bez konfiguracji |
| Nakład pracy przy konfiguracji | 30–60 min na stronę | 2 kliknięcia |
| Stron w jednej partii | Sekwencyjnie, jedna po drugiej | 50 stron jednocześnie (Cloud Scraping) |
Jeśli scrapujesz 200 stron produktów w 10 listach z paginacją, n8n zabierze Ci całe popołudnie. Thunderbit zrobi to w około dwie minuty. To nie zarzut wobec n8n — po prostu inne narzędzie do innego zadania.
Ustaw i zapomnij: workflowy n8n do scrapingu uruchamiane z cronem
Jednorazowy scraping jest przydatny, ale prawdziwa siła web scrapingu w n8n to cykliczne, zautomatyzowane pobieranie danych. Zaskakująco niewiele poradników o scrapingu w n8n omawia Schedule Trigger, mimo że to jedna z najczęściej poszukiwanych funkcji w społeczności.
Budowa dziennego pipeline’u do monitorowania cen
Zastąp Manual Trigger węzłem Schedule Trigger. Możesz użyć interfejsu n8n („Every day at 8:00 AM”) albo wyrażenia cron (0 8 * * *).
Pełny łańcuch workflowu:
- Schedule Trigger (codziennie o 8:00)
- Code (generowanie URL-i z paginacją)
- Loop Over Items → HTTP Request → HTML → Wait (scraping wszystkich stron)
- Code (czyszczenie danych, normalizacja cen)
- Google Sheets (dopisywanie nowych wierszy)
- IF (czy cena spadła poniżej progu?)
- Slack (wysłanie alertu, jeśli tak)
Obok niego skonfiguruj workflow Error Trigger, który uruchomi się przy każdym błędzie i wyśle powiadomienie do Slacka. W przeciwnym razie, gdy selektory się zepsują — a w końcu się zepsują — odkryjesz to dopiero po trzech tygodniach, gdy raport okaże się pusty.
Dwa nieoczywiste wymagania:
- n8n musi działać 24/7. Self-host na laptopie nie uruchomi się, gdy zamkniesz pokrywę. Użyj serwera, Dockera albo n8n Cloud.
- Po każdej edycji workflowu wyłącz go i włącz ponownie. n8n Cloud ma z tym, że harmonogramy po edycji cicho wyrejestrowują się bez żadnego komunikatu o błędzie.
Budowa tygodniowego pipeline’u do ekstrakcji leadów
Ten sam wzorzec, tylko inny cel: Schedule Trigger (co poniedziałek o 9:00) → HTTP Request (katalog firm) → HTML (wyciągnięcie nazwy, telefonu, e-maila) → Code (usuwanie duplikatów, czyszczenie formatowania) → wysyłka do Airtable lub HubSpot.

Koszt utrzymania to tutaj niedoceniany wydatek. Jeśli katalog zmieni układ, selektory CSS przestaną działać i workflow po cichu padnie. HasData szacuje, że w każdym pipeline opartym na selektorach należy zarezerwować początkowego czasu budowy na bieżące utrzymanie w skali roku. Gdy utrzymujesz około 20 stron, narzut robi się naprawdę odczuwalny.
Scheduled Scraper w Thunderbit: alternatywa bez kodu
Scheduled Scraper w Thunderbit pozwala opisać interwał zwykłym językiem (np. „every Monday at 9 AM”), podać URL-e i kliknąć „Schedule”. Działa w chmurze — bez hostingu, bez wyrażeń cron, bez cichego wyrejestrowywania.
| Obszar | Workflow harmonogramu w n8n | Thunderbit Scheduled Scraper |
|---|---|---|
| Konfiguracja harmonogramu | Wyrażenie cron lub interfejs n8n | Opis w zwykłym języku |
| Czyszczenie danych | Wymaga ręcznego węzła Code | AI automatycznie czyści, etykietuje i tłumaczy |
| Miejsca eksportu | Wymaga węzłów integracyjnych | Google Sheets, Airtable, Notion, Excel (darmowe) |
| Wymóg hostingu | Self-hosted lub n8n Cloud | Brak — działa w chmurze |
| Utrzymanie przy zmianach strony | Selektory się psują, trzeba poprawiać ręcznie | AI za każdym razem odczytuje stronę od nowa |
Ten ostatni wiersz ma największe znaczenie. Użytkownicy forum mówią to wprost: „większość działa dobrze, dopóki strona nie zmieni układu.” Podejście oparte na AI w Thunderbit eliminuje ten problem, bo nie opiera się na sztywnych selektorach CSS.
Gdy Twój scraper w n8n zostaje zablokowany: przewodnik po problemach anty-botowych
Blokada to największa frustracja zaraz po paginacji. Standardowa rada — „dodaj nagłówek User-Agent” — jest mniej więcej tak skuteczna, jak zabezpieczenie drzwi siatkowych przed huraganem.
Według Imperva 2025 Bad Bot Report, , a z niego ma charakter złośliwy. Dostawcy zabezpieczeń anty-botowych (Cloudflare, Akamai, DataDome, HUMAN, PerimeterX) odpowiedzieli fingerprintingiem TLS, wyzwaniami JavaScript i analizą zachowań. Węzeł HTTP Request w n8n, który działa pod spodem na bibliotece Axios, generuje charakterystyczny, łatwo rozpoznawalny fingerprint TLS niepodobny do przeglądarki. Zmiana nagłówka User-Agent nic nie daje — hash zdradza Cię, zanim jeszcze jakikolwiek nagłówek HTTP zostanie odczytany.
Drzewo decyzyjne dla problemów anty-botowych
Oto uporządkowany schemat diagnozy — nie tylko „dodaj User-Agent”:
Żądanie zostało zablokowane?
- 403 Forbidden → dodaj nagłówki User-Agent + Accept (patrz Krok 2 powyżej) → nadal blokada?
- Tak → dodaj rotację proxy residential → nadal blokada?
- Tak → przejdź na scraping API (ScrapeNinja, Firecrawl, ZenRows) albo community node headless browser
- Nie → kontynuuj
- Nie → kontynuuj
- Tak → dodaj rotację proxy residential → nadal blokada?
- Pojawia się CAPTCHA → użyj API do scrapingu z wbudowanym rozwiązywaniem CAPTCHA (np. )
- Pusty wynik (treść renderowana w JS) → użyj community node headless browser albo API do scrapingu z renderowaniem JS
- Limit zapytań (błąd 429) → włącz batching w węźle HTTP Request, ustaw 2–5 sekund opóźnienia między partiami, zmniejsz równoległość
Jeszcze jedna pułapka: n8n ma , przez który węzeł HTTP Request nie potrafi poprawnie tunelować HTTPS przez proxy HTTP. Biblioteka Axios wywala się na handshake TLS, mimo że curl w tym samym kontenerze działa poprawnie. Jeśli używasz proxy i widzisz tajemnicze błędy połączenia, to najpewniej właśnie to jest przyczyną.
Dlaczego Thunderbit omija większość problemów anty-botowych
Thunderbit oferuje dwa tryby scrapingu:
- Browser Scraping: działa w Twojej faktycznej przeglądarce Chrome, dziedzicząc ciasteczka sesji, zalogowany stan i fingerprint przeglądarki. Omija to większość zabezpieczeń anty-botowych blokujących żądania serwerowe — bo żądanie jest prawdziwą przeglądarką.
- Cloud Scraping: dla publicznie dostępnych stron chmura Thunderbit radzi sobie z anty-botem na dużą skalę — .
Jeśli więcej czasu spędzasz na walce z Cloudflare niż na analizie danych, to jest praktyczna alternatywa.
Szczerze: kiedy web scraping w n8n działa, a kiedy lepiej wybrać coś innego
n8n to świetna platforma. Ale nie jest najlepszym narzędziem do każdego zadania scrapingu i żaden konkurencyjny artykuł nie mówi tego wprost. Użytkownicy dosłownie pytają na forum: „jak trudno jest stworzyć scraper webowy w n8n?” oraz „które narzędzie do scrapingu działa najlepiej z n8n?”
Gdzie web scraping w n8n wypada najlepiej
- Wielostopniowe workflowy, które łączą scraping z dalszym przetwarzaniem — aktualizacją CRM, alertami Slack, analizą AI, zapisem do bazy. To jest najmocniejsza strona n8n.
- Sytuacje, w których scraping jest tylko jednym etapem większej automatyzacji — scrape → wzbogacenie → filtr → CRM.
- Użytkownicy techniczni, którzy dobrze czują się z selektorami CSS i logiką opartą na węzłach.
- Scenariusze wymagające własnej transformacji danych między pobraniem a zapisaniem.
Gdzie web scraping w n8n zaczyna boleć
- Użytkownicy nietechniczni, którzy po prostu potrzebują szybko danych. Konfiguracja węzłów, wyszukiwanie selektorów CSS i debugowanie to dla biznesowych użytkowników spore wyzwanie.
- Strony z mocną ochroną anty-botową. Dodatki w postaci proxy i API zwiększają koszt i złożoność.
- Utrzymanie, gdy strona zmienia układ. Selektory CSS się psują, workflowy padają po cichu.
- Masowy scraping wielu różnych typów stron. Każda strona wymaga własnej konfiguracji selektorów.
- Wzbogacanie podstron. Wymaga budowania osobnych pod-workflowów w n8n.
Porównanie: n8n vs. Thunderbit vs. skrypty Python
| Czynnik | Scraping DIY w n8n | Thunderbit | Skrypt Python |
|---|---|---|---|
| Wymagana wiedza techniczna | Średnia (węzły + selektory CSS) | Brak (AI sugeruje pola) | Wysoka (programowanie) |
| Czas konfiguracji nowej strony | 30–90 min | Około 2 min | 1–4 godz. |
| Obsługa anty-botowa | Ręczna (nagłówki, proxy, API) | Wbudowana (tryb browser/cloud) | Ręczna (biblioteki) |
| Utrzymanie przy zmianie strony | Ręczne aktualizacje selektorów | Zerowe — AI dostosowuje się automatycznie | Ręczne poprawki kodu |
| Obsługa wieloetapowych workflowów | Doskonała (główna zaleta) | Eksport do Sheets/Airtable/Notion | Wymaga własnego kodu |
| Koszt w skali | Hosting n8n + koszty proxy/API | Model kredytowy (~1 kredyt na wiersz) | Koszty serwera + proxy |
| Wzbogacanie podstron | Ręczne — budowa osobnego pod-workflowu | Scrapowanie podstron 1 kliknięciem | Własny skrypt |
Wniosek: używaj n8n, gdy scraping jest częścią złożonego, wieloetapowego łańcucha automatyzacji. Używaj Thunderbit, gdy potrzebujesz danych szybko, bez budowania workflowów. Używaj Pythona, gdy chcesz maksymalnej kontroli i masz zasoby deweloperskie. To nie są konkurenci — to narzędzia uzupełniające się nawzajem.

Rzeczywiste workflowy web scrapingu w n8n, które możesz od razu skopiować
Użytkownicy forum ciągle pytają: „Czy ktoś łączył to w wieloetapowe workflowy?” Oto trzy konkretne workflowy — prawdziwe sekwencje węzłów, które możesz zbudować już dziś.
Workflow 1: monitor cen konkurencji w e-commerce
Cel: codziennie śledzić ceny konkurencji i dostawać alert, gdy spadną.
Łańcuch węzłów: Schedule Trigger (codziennie, 8:00) → Code (generowanie URL-i z paginacją) → Loop Over Items → HTTP Request → HTML (pobranie nazwy produktu, ceny, dostępności) → Wait (2 s) → (powrót do pętli) → Code (czyszczenie danych, normalizacja cen) → Google Sheets (dopisywanie wierszy) → IF (cena poniżej progu?) → Slack (wysłanie alertu)
Złożoność: 8–10 węzłów, 30–60 min konfiguracji na jedną stronę konkurenta.
Skrót z Thunderbit: Scheduled Scraper w Thunderbit + może osiągnąć podobny efekt w kilka minut, z darmowym eksportem do Google Sheets.
Workflow 2: pipeline do pozyskiwania leadów sprzedażowych
Cel: raz w tygodniu scrapować katalog firm, czyścić i kategoryzować leady, a potem wysyłać je do CRM.
Łańcuch węzłów: Schedule Trigger (co tydzień, poniedziałek 9:00) → HTTP Request (strona listingu katalogu) → HTML (imię/nazwa, telefon, e-mail, adres) → Code (usuwanie duplikatów, czyszczenie formatowania) → węzeł OpenAI/Gemini (kategoryzacja według branży) → węzeł HubSpot (tworzenie kontaktów)
Uwaga: n8n ma natywny — bardzo przydatny do wysyłania danych do CRM. Jednak etapy scrapingu i czyszczenia nadal wymagają ręcznego tworzenia selektorów CSS.
Skrót z Thunderbit: darmowy i Phone Number Extractor w Thunderbit potrafią pobrać dane kontaktowe 1 kliknięciem, bez budowania workflowu. AI może też kategoryzować leady w trakcie ekstrakcji. Użytkownicy, którzy nie potrzebują pełnego łańcucha automatyzacji, mogą w ogóle pominąć konfigurację n8n.
Workflow 3: śledzenie nowych ofert nieruchomości
Cel: co tydzień wyłapywać nowe oferty na Zillow lub Realtor.com i wysyłać podsumowanie e-mailem.
Łańcuch węzłów: Schedule Trigger (co tydzień) → HTTP Request (strony z listingami) → HTML (adres, cena, liczba sypialni, link) → Code (czyszczenie danych) → Google Sheets (dopisywanie) → Code (porównanie z danymi z poprzedniego tygodnia, oznaczenie nowych ofert) → IF (znaleziono nowe oferty?) → Gmail/SendGrid (wysłanie digestu)
Uwaga: Thunderbit ma — bez potrzeby ustawiania selektorów CSS. Użytkownicy, którzy potrzebują pełnego łańcucha automatyzacji (scrape → porównanie → alert), skorzystają z n8n; ci, którzy chcą tylko danych z ogłoszeń, skorzystają z Thunderbit.
Więcej inspiracji workflowów znajdziesz w bibliotece społeczności n8n, gdzie są szablony , oraz .
Wskazówki, jak utrzymać pipeline’y web scrapingu w n8n w dobrej kondycji
Scraping produkcyjny to w 20% budowanie i w 80% utrzymanie.
Używaj batchingu i opóźnień, aby uniknąć limitów zapytań
Włącz batching w węźle HTTP Request i ustaw opóźnienie 1–3 sekund między partiami. Równoległe żądania to najszybsza droga do zablokowania IP. Odrobina cierpliwości teraz oszczędza dużo problemów później.
Monitoruj wykonania workflowów, aby wykrywać ciche błędy
Korzystaj z zakładki Executions w n8n, aby sprawdzać nieudane uruchomienia. Dane po scrapingu mogą po cichu wrócić puste, jeśli strona zmieni układ — workflow „sukces”, a arkusz pełen pustych pól.
Skonfiguruj workflow Error Trigger, który uruchomi się przy każdym błędzie i wyśle alert do Slacka lub e-mail. To absolutna podstawa w pipeline’ach produkcyjnych.
Przechowuj selektory CSS poza workflowem, żeby łatwo je aktualizować
Trzymaj selektory CSS w Google Sheet albo zmiennych środowiskowych n8n, żeby można je było aktualizować bez edycji samego workflowu. Gdy układ strony się zmienia, poprawiasz tylko jedno miejsce.
Wiedz, kiedy przejść na scraper oparty na AI
Jeśli stale aktualizujesz selektory CSS, walczysz z zabezpieczeniami anty-botowymi albo więcej czasu spędzasz na utrzymaniu scraperów niż na korzystaniu z danych, rozważ narzędzie AI, takie jak , które za każdym razem odczytuje stronę od nowa i dostosowuje się automatycznie. Podejście oparte na działa bardzo dobrze: Thunderbit obsługuje kruchą warstwę ekstrakcji — tę, która psuje się za każdym razem, gdy strona zmienia <div> — eksportuje dane do Google Sheets lub Airtable, a n8n pobiera nowe wiersze przez natywne wyzwalacze Sheets/Airtable i zajmuje się orkiestracją — aktualizacją CRM, alertami, logiką warunkową i rozsyłaniem danych do wielu systemów.
Podsumowanie: zbuduj pipeline dopasowany do Twojego zespołu
Web scraping w n8n jest bardzo mocny wtedy, gdy scraping stanowi jeden krok w większym workflowie automatyzacji. Ale wymaga technicznej konfiguracji, bieżącego utrzymania oraz cierpliwości przy paginacji, anty-botach i harmonogramach. Ten przewodnik omówił cały proces: pierwszy workflow, paginację (czyli ten element, który każdy poradnik pomija), harmonogramy, rozwiązywanie problemów anty-botowych, uczciwą ocenę miejsca n8n oraz przykłady rzeczywistych workflowów, które możesz skopiować.
Ja myślę o tym tak:
- Używaj n8n, gdy scraping jest częścią złożonego, wieloetapowego łańcucha automatyzacji — aktualizacji CRM, alertów Slack, wzbogacania przez AI, routingu warunkowego.
- Używaj , gdy potrzebujesz danych szybko, bez budowania workflowów — AI zajmuje się sugestią pól, paginacją, anty-botami i eksportem w 2 kliknięcia.
- Używaj Pythona, gdy chcesz maksymalnej kontroli i masz zasoby deweloperskie.
A szczerze? Dla wielu zespołów najlepsza konfiguracja to połączenie obu: Thunderbit do ekstrakcji, n8n do orkiestracji. Jeśli chcesz zobaczyć, jak scraping wspierany przez AI wypada na tle workflowu w n8n, pozwoli Ci poeksperymentować na małą skalę — a instaluje się w kilka sekund. Po poradniki wideo i pomysły na workflowy zajrzyj na .
FAQ
Czy n8n potrafi scrapować strony mocno oparte na JavaScript?
Nie samym węzłem HTTP Request. HTTP Request pobiera surowy HTML i nie wykonuje JavaScriptu. W przypadku stron renderowanych w JS potrzebujesz community node, takiego jak , albo integracji z API do scrapingu (ScrapeNinja, Firecrawl), która renderuje JavaScript po stronie serwera. Thunderbit obsługuje strony mocno oparte na JS natywnie zarówno w trybie Browser Scraping, jak i Cloud Scraping.
Czy web scraping w n8n jest darmowy?
Wersja self-hosted n8n jest darmowa i open source. n8n Cloud kiedyś miało darmowy plan, ale według stanu na kwiecień 2026 oferuje tylko 14-dniowy okres próbny — potem plany startują od 24 USD miesięcznie za 2500 wykonań. Scraping stron chronionych może też wymagać płatnych proxy (5–15 USD/GB za proxy residential) albo płatnych API do scrapingu (49–200+ USD miesięcznie, zależnie od wolumenu).
Jak web scraping w n8n wypada w porównaniu z Thunderbit?
n8n jest lepsze do wieloetapowych automatyzacji, w których scraping jest tylko jednym elementem większego workflowu (np. scrape → wzbogacenie → filtr → CRM → alert na Slacku). Thunderbit lepiej sprawdza się przy szybkim, bezkodowym pobieraniu danych z AI do wykrywania pól, automatyczną paginacją i zerowym utrzymaniem, gdy strona się zmienia. Wiele zespołów używa obu narzędzi razem — Thunderbit do ekstrakcji, n8n do orkiestracji.
Czy mogę scrapować dane ze stron wymagających logowania przy użyciu n8n?
Tak, ale wymaga to skonfigurowania cookies lub tokenów sesji w węźle HTTP Request, co bywa trudne w utrzymaniu. Tryb Browser Scraping w Thunderbit automatycznie dziedziczy zalogowaną sesję Chrome użytkownika — jeśli jesteś zalogowany, Thunderbit może scrapować to, co widzisz.
Co zrobić, gdy mój scraper w n8n nagle przestaje zwracać dane?
Najpierw sprawdź zakładkę Executions w n8n pod kątem błędów. Najczęstszą przyczyną jest zmiana układu strony, która uszkodziła selektory CSS — workflow „przechodzi”, ale zwraca puste pola. Zweryfikuj selektory w narzędziu Inspect w Chrome, zaktualizuj je w workflowie (lub w zewnętrznym arkuszu z selektorami) i przetestuj ponownie. Jeśli blokuje Cię ochrona anty-botowa, skorzystaj z drzewa decyzyjnego z tego przewodnika. Dla długoterminowej niezawodności rozważ scraper oparty na AI, taki jak Thunderbit, który automatycznie dostosowuje się do zmian układu.
Dowiedz się więcej