Несколько месяцев назад один из наших пользователей прислал нам скриншот workflow в n8n: 14 узлов, с полдюжины стикеров и тема письма, которая звучала просто: «Помогите». Он прошёл популярный туториал по web scraping в n8n, успешно запустил красивый демо-проект на 10 строк на тестовом сайте, а потом попытался собрать реальные цены конкурентов сразу со 200 карточек товаров. Итог? Сломанная петля пагинации, стена из ошибки 403 и молча отключившийся планировщик, который перестал срабатывать после первого же вторника.
Именно на этом разрыве — между демо и рабочим пайплайном — чаще всего и гибнут проекты по парсингу в n8n. Я много лет создаю и работаю в автоматизации, и скажу прямо: сложность обычно не в самом сборе данных. Проблемы начинаются после первого успешного парсинга. Пагинация, расписание, защита от ботов, очистка данных, экспорт и — главное — поддержка, когда сайт в третий раз за квартал меняет структуру. В этом гайде мы разберём весь процесс: от первого узла HTTP Request до повторяющегося production-ready workflow для web scraping в n8n. А там, где подход n8n своими силами упирается в стену, я покажу, как AI-инструменты вроде Thunderbit могут сэкономить вам часы, а то и дни нервов.
Что такое web scraping в n8n и почему большинство туториалов показывают только верхушку айсберга
n8n — это open-source платформа для автоматизации workflow с low-code-подходом. Проще говоря, это визуальное полотно, где вы соединяете «ноды» — каждая выполняет свою задачу (забрать страницу, разобрать HTML, отправить сообщение в Slack, записать данные в Google Sheets) — и собираете из них автоматические цепочки. Большого количества кода не требуется, хотя при необходимости можно вставить JavaScript.
«Web scraping в n8n» — это использование встроенных узлов HTTP Request и HTML (а также community nodes), чтобы получать, разбирать и обрабатывать данные сайтов внутри автоматизированных workflows. Основной процесс состоит из двух шагов: Fetch (узел HTTP Request забирает сырой HTML по URL) и Parse (узел HTML с помощью CSS-селекторов вытаскивает нужные вам данные — названия товаров, цены, email, что угодно).
Платформа огромная: по состоянию на апрель 2026 года у n8n , более 230 000 активных пользователей, 9 166+ шаблонов workflows от сообщества, а новые минорные релизы выходят примерно раз в неделю. В марте 2025 года компания привлекла . Динамика здесь очень сильная.
Но есть одна проблема, о которой почти никто не говорит. Самый популярный туториал по парсингу в n8n на dev.to (от Lakshay Nasa, опубликованный от имени оргкоманды "Extract by Zyte") обещал пагинацию в «Part 2». Вторая часть действительно вышла — и вот что сам автор написал в итоге: «N8N даёт нам режим Pagination по умолчанию внутри узла HTTP Request в разделе Options, и хотя это звучит удобно, в моём опыте для типичных задач web scraping он работал ненадёжно.» В итоге автор перенёс пагинацию на платный сторонний API. Тем временем пользователи форума n8n постоянно называют «pagination, throttling, login» тем самым моментом, когда парсинг в n8n «очень быстро усложняется». Этот гайд и создан, чтобы закрыть этот пробел.
Почему web scraping в n8n важен для отделов продаж, операционных команд и ecommerce
Web scraping в n8n — это не игрушка для разработчиков. Это бизнес-инструмент. Объём в 2025 году составляет примерно $1–1,3 млрд и, по прогнозам, вырастет до $2–2,3 млрд к 2030 году. Только динамическое ценообразование используют около , а уже опираются на альтернативные данные — значительная часть которых собирается с веба. McKinsey отмечает, что внедрение динамического ценообразования даёт .
Вот где настоящая сила n8n раскрывается по-настоящему: не просто в получении данных, а в том, что происходит дальше. n8n позволяет связать парсинг с последующими действиями — обновлением CRM, уведомлениями в Slack, экспортом в таблицы, AI-анализом — в одном workflow.
| Сценарий | Кому полезно | Что собираете | Бизнес-результат |
|---|---|---|---|
| Лидогенерация | Отделы продаж | Бизнес-каталоги, страницы контактов | Наполняете CRM квалифицированными лидами |
| Мониторинг цен конкурентов | Ecommerce-операции | Страницы товаров | Корректируете цены в реальном времени |
| Отслеживание объявлений по недвижимости | Риелторы | Zillow, Realtor, локальные MLS-сайты | Замечаете новые объекты раньше конкурентов |
| Исследование рынка | Маркетинг | Сайты с отзывами, форумы, новости | Выявляете тренды и настроение клиентов |
| Мониторинг запасов поставщиков / SKU | Supply chain | Страницы товаров поставщика | Избегаете дефицита и оптимизируете закупки |
Данные показывают, что ROI вполне реален: планируют увеличить инвестиции в AI в 2025 году, а автоматизированное nurturing-обслуживание лидов, как показано, может за девять месяцев. Если ваша команда всё ещё копирует данные с сайтов в таблицы вручную, вы буквально теряете деньги.
Инструменты n8n для web scraping: основные узлы и доступные решения
Прежде чем что-то строить, нужно понимать, что лежит в наборе инструментов. Вот основные узлы n8n для web scraping:
- HTTP Request node: получает сырой HTML по любому URL. Работает как браузер, который отправляет запрос на страницу, но возвращает код, а не рендерит её. Поддерживает GET/POST, заголовки, пакетную обработку и, теоретически, встроенную пагинацию.
- HTML node (ранее "HTML Extract"): разбирает HTML с помощью CSS-селекторов и вытаскивает конкретные данные — заголовки, цены, ссылки, изображения, всё что нужно.
- Code node: позволяет писать JavaScript-скрипты для очистки данных, нормализации URL, удаления дублей и добавления собственной логики.
- Edit Fields (Set) node: перестраивает или переименовывает поля данных для следующих узлов.
- Split Out node: разбивает массивы на отдельные элементы для обработки.
- Convert to File node: экспортирует структурированные данные в CSV, JSON и другие форматы.
- Loop Over Items node: проходит по спискам поэтапно — критично для пагинации, об этом чуть ниже.
- Schedule Trigger: запускает workflow по расписанию cron.
- Error Trigger: отправляет уведомление, если workflow упал (это обязательно для production).
Для продвинутого парсинга — сайтов с JavaScript-рендерингом или сильной защитой от ботов — понадобятся community nodes:
| Подход | Лучше всего подходит для | Уровень навыка | Поддерживает сайты с JS-рендерингом | Защита от ботов |
|---|---|---|---|---|
| n8n HTTP Request + HTML nodes | Статические сайты, API | Начальный–средний | Нет | Вручную (заголовки, прокси) |
| n8n + ScrapeNinja/Firecrawl community node | Динамические / защищённые сайты | Средний | Да | Встроенно (ротация прокси, CAPTCHA) |
| n8n + Headless Browser (Puppeteer) | Сложные JS-взаимодействия | Продвинутый | Да | Частично (зависит от настройки) |
| Thunderbit (AI Web Scraper) | Любые сайты, пользователи без техподготовки | Начальный | Да (режим Browser или Cloud) | Встроенно (использует сессию браузера или облачную обработку) |
По состоянию на v2.15.1 в n8n нет встроенного нода headless browser. Любой парсинг JS-рендерящихся страниц требует либо community node, либо внешнего API.
И коротко о Thunderbit: это AI-помощник в виде , которое наша команда создала. Вы нажимаете «AI Suggest Fields», затем «Scrape» — и получаете структурированные данные без CSS-селекторов, без настройки узлов и без постоянной поддержки. По ходу этого гайда я покажу, где Thunderbit подходит лучше, а где n8n остаётся предпочтительнее.
Пошагово: как собрать первый workflow для web scraping в n8n
Теперь, когда базовый набор инструментов понятен, давайте соберём рабочего web scraper в n8n с нуля. В качестве примера возьмём страницу со списком товаров — именно такой кейс обычно нужен для мониторинга цен или анализа конкурентов.
Перед началом:
- Сложность: начальный–средний уровень
- Время: примерно 20–30 минут
- Что понадобится: n8n (self-hosted или Cloud), целевой URL, браузер Chrome (для поиска CSS-селекторов)
Шаг 1: создайте новый workflow и добавьте Manual Trigger
Откройте n8n, нажмите «New Workflow» и дайте ему понятное имя — например, «Competitor Price Scraper». Добавьте узел Manual Trigger. Позже мы заменим его на запуск по расписанию.
На холсте должен появиться один узел, готовый к запуску после нажатия «Test Workflow».
Шаг 2: получите страницу через HTTP Request
Добавьте узел HTTP Request и соедините его с Manual Trigger. Установите метод GET и введите целевой URL, например https://example.com/products.
Теперь самый важный шаг, который большинство туториалов пропускает: добавьте реалистичный заголовок User-Agent. По умолчанию n8n отправляет user agent вида axios/xx, и сайт моментально понимает, что это бот. В разделе «Headers» добавьте:
| Имя заголовка | Значение |
|---|---|
| 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 |
Если вы парсите несколько URL, включите Batching в разделе Options и задайте паузу 1–3 секунды между запросами. Это помогает не упереться в rate limits.
Запустите узел. В панели вывода вы должны увидеть сырой HTML.
Шаг 3: извлеките данные через HTML node
Подключите узел HTML к выходу HTTP Request. В качестве операции выберите Extract HTML Content.
Чтобы найти правильные CSS-селекторы, откройте целевую страницу в Chrome, кликните правой кнопкой по нужному элементу, например названию товара, и выберите «Inspect». В панели Elements нажмите правой кнопкой по подсвеченному HTML-элементу и выберите «Copy → Copy selector».
Настройте поля извлечения так:
| Ключ | CSS Selector | Возвращаемое значение |
|---|---|---|
| product_name | .product-title | Text |
| price | .price-current | Text |
| url | .product-link | Attribute: href |
Запустите узел. В выводе вы увидите таблицу со структурированными данными — названиями товаров, ценами и URL.
Шаг 4: очистите и нормализуйте данные через Code node
Сырые данные после парсинга почти всегда грязные. Цены содержат лишние пробелы, URL могут быть относительными, а в текстовых полях остаются лишние переносы строк. Добавьте узел Code и соедините его с HTML node.
Вот простой JavaScript-скрипт для очистки:
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});
Этот шаг критически важен для данных уровня production. Пропустите его — и ваша таблица будет заполнена вроде бы такими же значениями, но с лишними пробелами и переносами вроде "$ 29.99\n".
Шаг 5: экспортируйте данные в Google Sheets, Airtable или CSV
Подключите узел Google Sheets (или Airtable, либо Convert to File для CSV). Авторизуйтесь через свой Google-аккаунт, выберите таблицу и лист, а затем сопоставьте поля из выхода Code node с заголовками колонок.
Запустите весь workflow. В таблице должны появиться чистые, структурированные данные.
Кстати: в Google Sheets, Airtable, Notion и Excel вообще без настройки узлов. Если вам не нужен полный цепочный workflow и вы хотите просто получить данные, это очень удобный обходной путь.
Часть, которую пропускает почти каждый туториал по n8n web scraping: полноценная пагинация
Пагинация — это проблема №1 в контенте про парсинг в n8n и источник №1 раздражения на форумах сообщества.
Есть два основных паттерна пагинации:
- Переход по страницам / увеличение URL — страницы вида
?page=1,?page=2и т. д. - Бесконечная прокрутка — контент подгружается по мере скролла вниз (как в Twitter, Instagram или многих современных каталогах товаров).
Пагинация по страницам в n8n (увеличение URL через Loop nodes)
Встроенная опция Pagination в меню Options узла HTTP Request звучит удобно. На практике она ненадёжна. Самый популярный автор туториала по n8n scraping (Lakshay Nasa) тоже пробовал её и написал: «в моём опыте она работала ненадёжно». Пользователи форума жалуются, что она , и не может определить последнюю страницу.

Надёжный подход: явно сформировать список URL в Code node, а затем пройтись по нему через Loop Over Items.
Схема такая:
- Добавьте Code node, который сгенерирует URL страниц:
1const base = 'https://example.com/products';
2const totalPages = 10; // или определяйте динамически
3return Array.from({length: totalPages}, (_, i) => ({
4 json: { url: `${base}?page=${i + 1}` }
5}));
- Подключите Loop Over Items, чтобы проходить по списку.
- Внутри цикла добавьте узел HTTP Request (в поле URL используйте
{{ $json.url }}), а затем HTML node для парсинга. - Добавьте узел Wait (1–3 секунды, лучше случайная пауза) внутри цикла, чтобы не попасть под ограничения 429.
- После цикла соберите результаты и экспортируйте их в Google Sheets или CSV.
Полная цепочка: Code (генерация URL) → Loop Over Items → HTTP Request → HTML → Wait → (возврат в цикл) → Aggregate → Export.
Есть один подводный камень: у узла Loop Over Items есть , из-за которого вложенные циклы могут тихо пропускать элементы. Если вы делаете пагинацию и одновременно обогащаете данные со вложенных страниц, тестируйте особенно внимательно — счётчик "done" может не совпасть с количеством входных элементов.
Пагинация с бесконечной прокруткой: почему встроенные узлы n8n здесь буксуют
Страницы с infinite scroll подгружают контент через JavaScript по мере прокрутки. Узел HTTP Request забирает только первоначальный HTML — он не умеет выполнять JavaScript и не может имитировать скролл. У вас есть два варианта:
- Использовать community node с headless browser (например, или ), чтобы рендерить страницу и имитировать прокрутку.
- Использовать scraping API (ScrapeNinja, Firecrawl, ZenRows) с включённым JS-рендерингом.
Оба варианта сильно усложняют настройку. На каждый сайт уходит 30–60+ минут только на подключение, не считая дальнейшей поддержки.
Как Thunderbit обрабатывает пагинацию без настройки
Я, конечно, не совсем объективен, но разница очень заметна:
| Возможность | n8n (workflow своими силами) | Thunderbit |
|---|---|---|
| Пагинация по страницам | Ручная настройка цикла и увеличение URL | Автоматически — определяет пагинацию и проходит её |
| Страницы с infinite scroll | Требуется headless browser и community node | Поддержка встроена, настройка не нужна |
| Усилия на запуск | 30–60 минут на сайт | 2 клика |
| Количество страниц за пакет | Последовательно, по одной | 50 страниц одновременно (Cloud Scraping) |
Если вы собираете данные с 200 страниц товаров на 10 разных списках, n8n займёт у вас весь день. Thunderbit справится примерно за две минуты. Это не критика n8n — просто другой инструмент для другой задачи.
Настроил и забыл: pipelines для web scraping в n8n по cron-расписанию
Разовый парсинг полезен, но настоящая сила web scraping в n8n — это регулярный автоматический сбор данных. Удивительно, но почти ни один туториал по n8n scraping не объясняет, как использовать Schedule Trigger, хотя это одна из самых востребованных функций в сообществе.
Как собрать ежедневный pipeline для мониторинга цен
Замените Manual Trigger на узел Schedule Trigger. Можно использовать интерфейс n8n («Every day at 8:00 AM») или cron-выражение (0 8 * * *).
Полная цепочка workflow:
- Schedule Trigger (ежедневно в 8:00)
- Code node (генерация paginated URL)
- Loop Over Items → HTTP Request → HTML → Wait (сбор всех страниц)
- Code node (очистка данных, нормализация цен)
- Google Sheets (добавление новых строк)
- IF node (упала ли цена ниже порога?)
- Slack (отправка уведомления, если да)
Рядом обязательно настройте отдельный workflow с Error Trigger, который будет срабатывать при любой неудачной обработке и слать ping в Slack. Иначе, когда селекторы сломаются, а они сломаются, вы узнаете об этом только через три недели, когда отчёт окажется пустым.
Два неочевидных требования:
- n8n должен работать 24/7. Если self-hosted-версия запущена на ноутбуке, закрытая крышка просто остановит срабатывание. Используйте сервер, Docker или n8n Cloud.
- После каждого изменения workflow выключайте и снова включайте его. В n8n Cloud есть , из-за которой планировщики после редактирования могут тихо отвязываться без каких-либо ошибок.
Как собрать еженедельный pipeline для извлечения лидов
Тот же принцип, только другой сценарий: Schedule Trigger (каждый понедельник в 9:00) → HTTP Request (business directory) → HTML (извлечение имени, телефона, email) → Code (удаление дублей, очистка формата) → отправка в Airtable или HubSpot.

Затраты на поддержку — это тот скрытый расход, о котором редко говорят. Если каталог меняет структуру, ваши CSS-селекторы ломаются и workflow падает молча. По оценке HasData, на от первоначального времени сборки нужно закладывать поддержку в год для любого selector-based pipeline. Если вы поддерживаете около 20 сайтов, это уже очень ощутимо.
Scheduled Scraper от Thunderbit: альтернатива без кода
У Thunderbit есть Scheduled Scraper: вы описываете интервал обычным языком, например «каждый понедельник в 9 утра», указываете URL и нажимаете «Schedule». Всё работает в облаке — без хостинга, без cron-выражений и без тихого отвязывания триггеров.
| Параметр | n8n Scheduled Workflow | Thunderbit Scheduled Scraper |
|---|---|---|
| Настройка расписания | cron-выражение или UI n8n | Описание обычным языком |
| Очистка данных | Нужен ручной Code node | AI автоматически очищает, маркирует и переводит |
| Куда экспортировать | Нужны интеграционные узлы | Google Sheets, Airtable, Notion, Excel (бесплатно) |
| Требования к хостингу | Self-hosted или n8n Cloud | Нет — работает в облаке |
| Поддержка при изменении сайта | Селекторы ломаются, нужна ручная правка | AI заново читает сайт каждый раз |
Именно последняя строка здесь важнее всего. Пользователи форумов говорят об этом прямо: «всё нормально, пока сайт не поменяет структуру». AI-подход Thunderbit снимает эту боль, потому что он не завязан на жёстко заданные CSS-селекторы.
Когда ваш n8n scraper блокируют: руководство по устранению anti-bot проблем
Блокировки — это проблема №1 после пагинации. Стандартный совет «добавьте заголовок User-Agent» полезен примерно так же, как экранная дверь во время урагана.
Согласно Imperva 2025 Bad Bot Report, , и из него — вредоносные. В ответ антибот-провайдеры (Cloudflare, Akamai, DataDome, HUMAN, PerimeterX) используют TLS fingerprinting, JavaScript-челленджи и поведенческий анализ. Узел HTTP Request в n8n, который работает поверх библиотеки Axios, формирует характерный TLS fingerprint, легко отличимый от браузерного. Изменение User-Agent ничего не решает — выдаёт вас ещё до того, как сервер прочитает HTTP-заголовки.
Дерево решений для anti-bot проблем
Вот системный подход к отладке, а не просто «добавьте User-Agent»:
Запрос заблокирован?
- 403 Forbidden → Добавьте заголовки User-Agent + Accept (см. Шаг 2 выше) → Всё ещё блокируют?
- Да → Добавьте ротацию residential proxy → Всё ещё блокируют?
- Да → Перейдите на scraping API (ScrapeNinja, Firecrawl, ZenRows) или community node с headless browser
- Нет → Продолжайте
- Нет → Продолжайте
- Да → Добавьте ротацию residential proxy → Всё ещё блокируют?
- Появляется CAPTCHA → Используйте scraping API со встроенным решением CAPTCHA (например, )
- Пустой ответ (контент рендерится через JS) → Используйте community node с headless browser или scraping API с JS-рендерингом
- Слишком много запросов (ошибка 429) → Включите batching в HTTP Request, задайте паузу 2–5 секунд между пакетами, уменьшите concurrency
Ещё один подводный камень: у n8n есть , из-за которого узел HTTP Request не может корректно проксировать HTTPS через HTTP proxy. Библиотека Axios ломается на TLS handshake, хотя curl в том же контейнере работает нормально. Если вы используете прокси и видите странные ошибки соединения, скорее всего, дело в этом.
Почему Thunderbit обходит большинство проблем с anti-bot
У Thunderbit есть два режима парсинга:
- Browser Scraping: работает внутри вашего реального Chrome-браузера, наследуя cookies сессии, состояние входа и browser fingerprint. Это позволяет обходить большинство антибот-защит, которые блокируют серверные запросы, потому что запрос идёт из настоящего браузера.
- Cloud Scraping: для общедоступных сайтов облако Thunderbit само обрабатывает антибот-ограничения в масштабе — .
Если вы тратите больше времени на борьбу с Cloudflare, чем на анализ данных, это практичная альтернатива.
Честно: когда web scraping в n8n работает, а когда лучше выбрать другой инструмент
n8n — отличная платформа. Но она подходит не для каждой задачи парсинга, и в статьях конкурентов об этом часто не говорят честно. Пользователи буквально спрашивают на форумах: «насколько сложно создать web scraper в n8n?» и «какой scraping-инструмент лучше всего работает с n8n?»
Где web scraping в n8n особенно силён
- Многошаговые workflows, где сбор данных сочетается с дальнейшей обработкой — обновлением CRM, уведомлениями в Slack, AI-анализом, записью в базы данных. Это главная сильная сторона n8n.
- Сценарии, где scraping — только один узел в более длинной цепочке автоматизации: собрать → обогатить → отфильтровать → передать в CRM.
- Технически подготовленные пользователи, которым комфортно работать с CSS-селекторами и логикой на основе узлов.
- Ситуации, где нужна собственная трансформация данных между сбором и сохранением.
Где web scraping в n8n становится болезненным
- Нетехнические пользователи, которым данные нужны быстро. Настройка узлов, поиск CSS-селекторов и отладка для бизнес-пользователей довольно тяжёлые.
- Сайты с сильной защитой от ботов. Появляются дополнительные расходы и сложность из-за прокси и API.
- Поддержка при изменении структуры сайта. CSS-селекторы ломаются, workflow падает молча.
- Массовый сбор с большого числа разных сайтов. Для каждого сайта нужна своя конфигурация селекторов.
- Обогащение через подстраницы. Требует создавать отдельные под-workflow внутри n8n.
Сравнение: n8n, Thunderbit и Python-скрипты
| Фактор | n8n DIY Scraping | Thunderbit | Python Script |
|---|---|---|---|
| Необходимый уровень навыков | Средний (узлы + CSS-селекторы) | Никаких (AI предлагает поля) | Высокий (код) |
| Время настройки на новый сайт | 30–90 минут | Около 2 минут | 1–4 часа |
| Работа с anti-bot | Вручную (заголовки, прокси, API) | Встроенно (режимы browser/cloud) | Вручную (библиотеки) |
| Поддержка при изменении сайта | Ручное обновление селекторов | Ноль — AI адаптируется автоматически | Ручное обновление кода |
| Поддержка многошаговых workflow | Отлично (основная сила) | Экспорт в Sheets/Airtable/Notion | Требуется кастомный код |
| Стоимость в масштабе | Хостинг n8n + прокси/API | По кредитам (~1 кредит за строку) | Сервер + прокси |
| Обогащение через подстраницы | Вручную — отдельный под-workflow | Подстраницы в 1 клик | Кастомный скрипт |
Вывод: используйте n8n, когда scraping — это часть сложной многошаговой автоматизации. Используйте Thunderbit, когда данные нужны быстро и без сборки workflows. Используйте Python, когда вам нужен максимальный контроль и есть ресурсы разработчиков. Это не конкуренты — это взаимодополняющие инструменты.

Реальные workflows для web scraping в n8n, которые вы действительно можете скопировать
На форумах постоянно спрашивают: «Кто-нибудь объединял это в многошаговые workflows?» Вот три конкретных сценария — реальные последовательности узлов, которые можно собрать уже сегодня.
Workflow 1: мониторинг цен конкурентов в ecommerce
Цель: ежедневно отслеживать цены конкурентов и получать уведомление, когда они снижаются.
Цепочка узлов: Schedule Trigger (ежедневно, 8:00) → Code (генерация paginated URL) → Loop Over Items → HTTP Request → HTML (извлечение названия товара, цены, наличия) → Wait (2 сек) → (возврат в цикл) → Code (очистка данных, нормализация цен) → Google Sheets (добавление строк) → IF (цена ниже порога?) → Slack (отправка уведомления)
Сложность: 8–10 узлов, 30–60 минут на настройку для одного сайта конкурента.
Быстрый путь через Thunderbit: Scheduled Scraper от Thunderbit + позволяют добиться похожего результата за минуты, с бесплатным экспортом в Google Sheets.
Workflow 2: pipeline для лидогенерации в продажах
Цель: еженедельно собирать данные из бизнес-каталога, очищать и категоризировать лиды, затем отправлять их в CRM.
Цепочка узлов: Schedule Trigger (еженедельно, понедельник 9:00) → HTTP Request (страница списка каталога) → HTML (извлечение имени, телефона, email, адреса) → Code (удаление дублей, очистка формата) → OpenAI/Gemini node (категоризация по отрасли) → HubSpot node (создание контактов)
Примечание: у n8n есть встроенный — полезно для отправки данных в CRM. Но этапы парсинга и очистки всё равно требуют ручной работы с CSS-селекторами.
Быстрый путь через Thunderbit: бесплатные и Phone Number Extractor от Thunderbit могут собрать контактные данные в 1 клик без создания workflow. AI-метки тоже помогают категоризировать лиды прямо во время извлечения. Пользователи, которым не нужен полный автоматизированный конвейер, могут вообще пропустить настройку n8n.
Workflow 3: трекинг новых объектов недвижимости
Цель: еженедельно находить новые объявления на Zillow или Realtor.com и отправлять email-дайджест.
Цепочка узлов: Schedule Trigger (еженедельно) → HTTP Request (страницы объявлений) → HTML (извлечение адреса, цены, количества спален, ссылки) → Code (очистка данных) → Google Sheets (добавление) → Code (сравнение с данными прошлой недели, отметка новых объявлений) → IF (новые объявления найдены?) → Gmail/SendGrid (отправка дайджеста)
Примечание: у Thunderbit есть — CSS-селекторы не нужны. Тем, кому нужен полный автоматический цикл (собрать → сравнить → уведомить), подойдёт n8n; тем, кому нужны только сами данные, лучше подойдёт Thunderbit.
Для большего числа идей посмотрите шаблоны в сообществе n8n: , и .
Советы, как поддерживать ваши n8n pipelines для web scraping в рабочем состоянии
Production scraping — это 20% сборки и 80% поддержки.
Используйте batching и задержки, чтобы не попадать под rate limits
Включите batching в узле HTTP Request и задайте паузу 1–3 секунды между пакетами. Параллельные запросы — самый быстрый способ получить бан по IP. Немного терпения здесь экономит много боли позже.
Следите за выполнениями workflow, чтобы не пропускать тихие сбои
Используйте вкладку Executions в n8n, чтобы проверять неудачные запуски. После изменения структуры сайта scraped data может возвращаться пустой без явной ошибки — workflow формально «успешен», но таблица заполнена пустыми ячейками.
Настройте отдельный workflow с Error Trigger, который будет срабатывать на любой сбой и отправлять уведомление в Slack или по email. Для production это не обсуждается — это must-have.
Храните CSS-селекторы отдельно, чтобы было проще обновлять
Держите CSS-селекторы в Google Sheet или в переменных окружения n8n, чтобы менять их без редактирования самого workflow. Когда сайт меняет структуру, вам нужно будет обновить селектор только в одном месте.
Поймите, когда пора перейти на AI-powered scraper
Если вы постоянно обновляете CSS-селекторы, боретесь с антибот-защитой или тратите больше времени на поддержку скриперов, чем на использование данных, стоит посмотреть на AI-инструмент вроде , который каждый раз заново читает сайт и автоматически подстраивается. Подход работает отлично: Thunderbit берёт на себя хрупкий слой извлечения данных — ту часть, что ломается каждый раз, когда сайт меняет <div> — экспортирует результат в Google Sheets или Airtable, а n8n подхватывает новые строки через встроенный триггер Sheets/Airtable и занимается оркестрацией: обновлением CRM, уведомлениями, условной логикой, раздачей данных по разным системам.
Итог: соберите pipeline, который подходит вашей команде
Web scraping в n8n очень мощный, когда вам нужен парсинг как один из шагов более крупного automation workflow. Но он требует технической настройки, постоянной поддержки и терпения при работе с пагинацией, антибот-защитой и настройкой расписания. В этом гайде мы разобрали весь процесс: первый workflow, пагинацию — ту самую часть, которую пропускает почти каждый туториал, расписания, устранение anti-bot проблем, честный разбор того, где n8n действительно уместен, и реальные workflows, которые можно взять за основу.
Я смотрю на это так:
- Используйте n8n, когда парсинг — это часть сложной многошаговой автоматизации: обновление CRM, уведомления в Slack, AI-обогащение, условная маршрутизация.
- Используйте , когда данные нужны быстро и без сборки workflow: AI помогает с выбором полей, пагинацией, anti-bot и экспортом всего за 2 клика.
- Используйте Python, когда нужен максимальный контроль и у вас есть ресурсы разработчиков.
И, честно говоря, для многих команд лучшая схема — это комбинация: Thunderbit для извлечения данных, n8n для оркестрации. Если хотите увидеть, как AI-powered scraping выглядит по сравнению с вашим workflow в n8n, позволит протестировать всё на небольшом масштабе — а ставится за секунды. Для видеоразборов и идей workflows загляните на .
Часто задаваемые вопросы
Может ли n8n парсить сайты с тяжёлым JavaScript?
Не только встроенным узлом HTTP Request. Этот узел получает сырой HTML и не может выполнять JavaScript. Для сайтов с JS-рендерингом нужен community node вроде или интеграция со scraping API (ScrapeNinja, Firecrawl), которое рендерит JavaScript на сервере. Thunderbit умеет работать с такими сайтами нативно — и в режиме Browser Scraping, и в Cloud Scraping.
Web scraping в n8n бесплатный?
Self-hosted версия n8n бесплатна и open source. У n8n Cloud раньше был бесплатный тариф, но по состоянию на апрель 2026 года доступен только 14-дневный trial — после этого тарифы начинаются от $24 в месяц за 2 500 executions. Для парсинга защищённых сайтов также могут понадобиться платные прокси ($5–15/GB за residential proxies) или scraping API ($49–200+ в месяц в зависимости от объёма).
Как n8n web scraping сравнивается с Thunderbit?
n8n лучше подходит для многошаговой автоматизации, где сбор данных — это только одна часть большего workflow (например, собрать → обогатить → отфильтровать → отправить в CRM → уведомить в Slack). Thunderbit лучше для быстрого no-code извлечения данных с AI-подбором полей, автоматической пагинацией и без поддержки при изменении сайтов. Многие команды используют оба инструмента вместе: Thunderbit для сбора, n8n для оркестрации.
Можно ли через n8n собирать данные с сайтов, где нужен логин?
Да, но для этого нужно настраивать cookies или session tokens в узле HTTP Request, а это бывает трудно поддерживать. Режим Browser Scraping в Thunderbit автоматически наследует уже авторизованную сессию Chrome пользователя — если вы вошли в систему, Thunderbit сможет собрать то, что вы видите.
Что делать, если мой scraper в n8n внезапно перестал возвращать данные?
Сначала проверьте вкладку n8n Executions на наличие ошибок. Самая частая причина — изменение структуры сайта, из-за которого сломались CSS-селекторы: workflow формально «успешен», но возвращает пустые поля. Проверьте селекторы через Inspect в Chrome, обновите их в workflow (или в вашей отдельной таблице селекторов) и протестируйте снова. Если вас блокирует anti-bot, пройдите по дереву решений из этого гайда. Для долгосрочной надёжности стоит рассмотреть AI-powered scraper вроде Thunderbit, который автоматически адаптируется к изменениям структуры.
Узнайте больше