Несколько месяцев назад один из наших пользователей прислал нам скриншот workflow в n8n: 14 узлов, полдюжины стикеров и тема письма всего из одного слова — «Помогите». Он прошёл популярный туториал по web scraping в n8n, заставил красиво работать демо на 10 строк на тестовом сайте, а потом попытался собрать реальные цены конкурентов с 200 карточек товаров. Итог? Сломанная пагинация, стена из ошибки 403 и тихо замолчавший планировщик, который перестал запускаться после первого вторника.
Именно этот разрыв — между демо и рабочим пайплайном — и становится причиной провала большинства проектов по scraping в n8n. Я годами создавал и работал в автоматизации, поэтому скажу прямо: сложнее всего обычно не сам сбор данных. Настоящие проблемы начинаются после первого успешного извлечения: пагинация, расписание, защита от ботов, очистка данных, экспорт и — главное — поддержка, когда сайт в третий раз за квартал меняет верстку. В этом руководстве мы разберём весь путь: от первого узла HTTP Request до повторяющегося production-ready workflow для web scraping в n8n. А там, где DIY-подход n8n упирается в потолок, я покажу, как AI-инструменты вроде Thunderbit могут сэкономить вам часы — а иногда и дни — нервов.
Что такое web scraping в n8n и почему большинство туториалов показывают только верхушку айсберга
n8n — это open-source платформа для автоматизации workflow с low-code подходом. Проще говоря, это визуальное полотно, где вы соединяете «nodes» — каждый выполняет свою задачу (получить страницу, распарсить 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+ шаблонов community workflows и новый minor-релиз примерно каждую неделю. В марте 2025 года проект привлёк . Динамика впечатляющая.
Но есть один важный пробел, о котором почти никто не говорит. Самый популярный туториал по n8n scraping на dev.to (от Lakshay Nasa, опубликованный от имени «Extract by Zyte») пообещал пагинацию в «Части 2». Эта часть действительно вышла — и вот что написал сам автор: «В n8n есть стандартный Pagination Mode внутри узла HTTP Request в разделе Options, и хотя это звучит удобно, в моём опыте оно работало ненадёжно для типичных задач web scraping.» В итоге автор перенёс пагинацию на платный сторонний API. Тем временем пользователи форума n8n постоянно пишут, что именно на этапах «pagination, throttling, login» scraping в n8n «начинает быстро усложняться». Это руководство создано, чтобы закрыть этот пробел.
Почему web scraping в n8n важен для sales, ops и ecommerce-команд
Web scraping в n8n — это не хобби разработчика. Это бизнес-инструмент. в 2025 году оценивается примерно в $1–1,3 млрд и, по прогнозам, вырастет до $2–2,3 млрд к 2030 году. Только динамическое ценообразование используют около , а уже опираются на альтернативные данные — значительная часть которых собирается с веб-сайтов. McKinsey отмечает, что динамическое ценообразование даёт тем, кто его внедряет.
Вот где проявляется настоящая сила n8n: речь не только о получении данных. Речь о том, что происходит дальше. n8n позволяет связывать scraping с последующими действиями — обновлением CRM, уведомлениями в Slack, выгрузкой в таблицы, AI-анализом — в одном workflow.
| Сценарий | Кому полезно | Что собираете | Бизнес-результат |
|---|---|---|---|
| Лидогенерация | Отделы продаж | Бизнес-каталоги, страницы контактов | Наполнять CRM квалифицированными лидами |
| Мониторинг цен конкурентов | Ecommerce-операции | Страницы с товарами | Обновлять цены в реальном времени |
| Отслеживание объектов недвижимости | Риелторы | Zillow, Realtor, локальные MLS-сайты | Находить новые объявления раньше конкурентов |
| Исследование рынка | Маркетинг | Сайты с отзывами, форумы, новости | Выявлять тренды и настроение клиентов |
| Мониторинг запасов поставщиков/SKU | Цепочка поставок | Страницы товаров поставщиков | Избегать дефицита и оптимизировать закупки |
Данные говорят сами за себя: планируют увеличить инвестиции в AI в 2025 году, а автоматизированный lead nurturing, как показывают исследования, может за девять месяцев. Если ваша команда до сих пор копирует данные с сайтов в таблицы вручную, вы буквально оставляете деньги на столе.
Инструменты для web scraping в n8n: базовые узлы и доступные решения
Прежде чем что-то строить, нужно понимать, что лежит в вашем toolbox. Вот основные узлы n8n для web scraping:
- HTTP Request node: получает сырой HTML с любого URL. Работает как браузерный запрос страницы, но возвращает код, а не отображённую страницу. Поддерживает GET/POST, заголовки, batching и — теоретически — встроенную пагинацию.
- 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).
Для продвинутого scraping — сайтов с JavaScript-рендерингом или серьёзной антибот-защитой — понадобятся community nodes:
| Подход | Лучше всего подходит для | Уровень сложности | Работает с JS-рендерингом | Защита от ботов |
|---|---|---|---|---|
| n8n HTTP Request + HTML nodes | Статические сайты, API | Начальный–средний | Нет | Вручную (headers, proxies) |
| n8n + community node ScrapeNinja/Firecrawl | Динамические/защищённые сайты | Средний | Да | Встроенно (ротация прокси, CAPTCHA) |
| n8n + Headless Browser (Puppeteer) | Сложные JS-взаимодействия | Продвинутый | Да | Частично (зависит от настройки) |
| Thunderbit (AI Web Scraper) | Любые сайты, нетехнические пользователи | Начальный | Да (Browser или Cloud mode) | Встроенно (наследует сессию браузера или работает в облаке) |
По состоянию на v2.15.1 в n8n нет нативного узла headless browser. Любой scraping JS-страниц требует либо community node, либо внешнего API.
Немного о Thunderbit: это AI-powered , которое создала наша команда. Вы нажимаете «AI Suggest Fields», затем «Scrape» — и получаете структурированные данные без CSS-селекторов, настройки узлов и постоянного обслуживания. По ходу руководства я покажу, где Thunderbit подходит лучше, а где n8n остаётся более удачным выбором.
Пошагово: создаём первый workflow для web scraping в n8n
Теперь, когда toolbox понятен, соберём работающий web scraper в n8n с нуля. В качестве примера возьмём страницу каталога товаров — именно такие страницы обычно используют для мониторинга цен или анализа конкурентов.
Перед началом:
- Сложность: начальный–средний уровень
- Время: примерно 20–30 минут
- Что понадобится: n8n (self-hosted или Cloud), целевой URL, браузер Chrome (для поиска CSS-селекторов)
Шаг 1: создайте новый workflow и добавьте Manual Trigger
Откройте n8n, нажмите «New Workflow» и назовите его понятно — например, «Competitor Price Scraper». Перетащите узел Manual Trigger. Позже мы заменим его на триггер по расписанию.
На canvas должен появиться один узел, готовый к запуску после нажатия «Test Workflow».
Шаг 2: получите страницу через HTTP Request
Добавьте узел HTTP Request и соедините его с Manual Trigger. Установите метод GET и укажите целевой URL, например https://example.com/products.
Теперь самый важный шаг, который большинство туториалов пропускает: добавьте реалистичный заголовок User-Agent. По умолчанию n8n отправляет axios/xx как user agent — а это сразу выдаёт бота. В разделе «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 секунды между запросами. Это помогает не словить лимиты по частоте.
Запустите узел. В панели вывода вы должны увидеть сырой HTML.
Шаг 3: распарсьте данные через HTML node
Подключите узел HTML к выходу HTTP Request. В качестве операции выберите Extract HTML Content.
Чтобы найти правильные CSS-селекторы, откройте целевую страницу в Chrome, кликните правой кнопкой мыши по нужным данным, например названию товара, и выберите «Inspect». В панели Elements щёлкните правой кнопкой по подсвеченному HTML-элементу и выберите «Copy → Copy selector».
Настройте поля извлечения примерно так:
| Ключ | CSS-селектор | Что вернуть |
|---|---|---|
| product_name | .product-title | Text |
| price | .price-current | Text |
| url | .product-link | Attribute: href |
Запустите узел. В результате вы должны увидеть таблицу со структурированными данными — названия товаров, цены и URL.
Шаг 4: очистите и нормализуйте данные через Code node
Сырые данные после scraping обычно выглядят неаккуратно. Цены идут с лишними пробелами, 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});
Этот шаг критически важен для данных производственного качества. Пропустите его — и в таблице у вас окажется куча значений вроде "$ 29.99\n".
Шаг 5: экспортируйте данные в Google Sheets, Airtable или CSV
Подключите узел Google Sheets (или Airtable, или Convert to File для CSV). Авторизуйтесь через Google-аккаунт, выберите таблицу и лист, а затем сопоставьте поля из вывода Code node с колонками.
Запустите весь workflow. Вы должны увидеть чистые, структурированные данные в таблице.
Кстати: в Google Sheets, Airtable, Notion и Excel вообще без настройки узлов. Если вам не нужен полный chain workflow и вы просто хотите получить данные, это удобный короткий путь.
То, что почти каждый туториал по n8n web scraping пропускает: полноценная пагинация
Пагинация — это главный пробел в контенте про scraping в n8n и одновременно главный источник раздражения на форумах сообщества n8n.
Есть два основных типа пагинации:
- Пагинация по клику / увеличению URL — страницы вида
?page=1,?page=2и т. д. - Infinite scroll — контент подгружается по мере прокрутки вниз (как в 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 node (1–3 секунды, желательно случайная задержка) внутри цикла, чтобы не словить 429 rate limits.
- После цикла соберите результаты и экспортируйте их в 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-rendering.
Оба варианта заметно усложняют схему. На настройку одного сайта может уйти 30–60+ минут, плюс потребуется регулярная поддержка.
Как Thunderbit обрабатывает пагинацию без настройки
Я предвзят, но разница очень заметна:
| Возможность | n8n (DIY workflow) | Thunderbit |
|---|---|---|
| Пагинация по клику | Ручная настройка loop node, увеличение URL | Автоматически — сам распознаёт и проходит по страницам |
| Страницы с infinite scroll | Нужны headless browser и community node | Встроенная поддержка, без настройки |
| Затраты на настройку | 30–60 мин на сайт | 2 клика |
| Страниц за один запуск | Последовательно, по одной | 50 страниц одновременно (Cloud Scraping) |
Если вам нужно собрать 200 карточек товаров по 10 страницам, в n8n это займёт весь день. В Thunderbit — около двух минут. Это не критика n8n; просто другой инструмент для другой задачи.
Настроить один раз и забыть: n8n web scraping по расписанию
Одноразовый scraping полезен, но настоящая сила web scraping в n8n — это регулярный автоматический сбор данных. Удивительно, но почти ни один туториал по scraping в n8n не объясняет, как использовать Schedule Trigger для сбора данных, хотя это одна из самых востребованных функций сообщества.
Как построить ежедневный pipeline для мониторинга цен
Замените Manual Trigger на узел Schedule Trigger. Можно использовать интерфейс n8n («Every day at 8:00 AM») или cron-выражение (0 8 * * *).
Полная цепочка workflow:
- Schedule Trigger (каждый день в 8:00)
- Code node (генерация URL с пагинацией)
- Loop Over Items → HTTP Request → HTML → Wait (сбор всех страниц)
- Code node (очистка и нормализация цен)
- Google Sheets (добавление новых строк)
- IF node (цена упала ниже порога?)
- Slack (отправка уведомления, если да)
Параллельно настройте workflow с Error Trigger, который будет запускаться при любой ошибке и отправлять сообщение в Slack. Иначе, когда селекторы сломаются, вы узнаете об этом только через три недели, когда отчёт окажется пустым.
Два неочевидных требования:
- n8n должен работать 24/7. Self-hosted экземпляр на ноутбуке не сработает, если крышка закрыта. Используйте сервер, Docker или n8n Cloud.
- После каждого изменения workflow выключайте его и включайте снова. В n8n Cloud есть , из-за которой после редактирования планировщики могут тихо сниматься с регистрации без каких-либо ошибок.
Как собрать еженедельный pipeline для извлечения лидов
Тот же паттерн, только другой источник: Schedule Trigger (каждый понедельник в 9:00) → HTTP Request (бизнес-каталог) → HTML (извлечь имя, телефон, email) → Code (удалить дубли, привести формат) → отправка в Airtable или HubSpot.

Главная скрытая статья расходов здесь — поддержка. Если сайт-каталог меняет структуру, ваши CSS-селекторы ломаются, и workflow может тихо перестать работать. HasData оценивает, что на от первоначальных затрат на создание нужно закладывать в бюджет ежегодную поддержку любого pipeline, завязанного на селекторах. Когда вы поддерживаете около 20 сайтов, накладные расходы становятся вполне ощутимыми.
Scheduled Scraper в Thunderbit: no-code альтернатива
У Thunderbit есть Scheduled Scraper: вы описываете интервал простыми словами (например, «каждый понедельник в 9:00»), вводите URL и нажимаете «Schedule». Всё работает в облаке — без хостинга, без cron-выражений и без тихого снятия с регистрации.
| Параметр | n8n Scheduled Workflow | Thunderbit Scheduled Scraper | |---|---|---|---| | Настройка расписания | Cron-выражение или UI расписания n8n | Описание простыми словами | | Очистка данных | Нужен ручной Code node | AI автоматически чистит, размечает и переводит | | Куда экспортировать | Требуются integration nodes | Google Sheets, Airtable, Notion, Excel (бесплатно) | | Требования к хостингу | Self-hosted или n8n Cloud | Нет — работает в облаке | | Поддержка при изменении сайта | Селекторы ломаются, нужен ручной фикс | AI заново читает сайт каждый раз |
Именно последняя строка здесь важнее всего. Пользователи форумов говорят об этом прямо: «всё работает, пока сайт не меняет верстку». AI-подход Thunderbit снимает эту боль, потому что он не зависит от жёстко заданных CSS-селекторов.
Когда ваш web scraper в n8n блокируют: руководство по антибот-защите
Блокировка — это самая частая проблема после пагинации. Стандартный совет «добавьте заголовок User-Agent» полезен примерно так же, как дверца от сетки в ураган.
По данным Imperva 2025 Bad Bot Report, , и этого трафика — вредоносные. В ответ антибот-вендоры (Cloudflare, Akamai, DataDome, HUMAN, PerimeterX) используют TLS fingerprinting, JavaScript challenges и поведенческий анализ. Узел HTTP Request в n8n, который внутри использует библиотеку Axios, создаёт характерный, легко узнаваемый TLS fingerprint, не похожий на браузерный. Изменение User-Agent ничего не меняет — выдаёт вас ещё до того, как прочитается хотя бы один HTTP-заголовок.
Дерево принятия решений для антибот-защиты
Ниже — системный подход к диагностике, а не просто совет «добавьте 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-rendering
- Срабатывает rate limit (ошибка 429) → включите batching в HTTP Request, поставьте паузу 2–5 секунд между batch-ами, уменьшите concurrency
Ещё один подводный камень: в n8n есть , из-за которого узел HTTP Request не может корректно проксировать HTTPS через HTTP proxy. Библиотека Axios падает на TLS handshake, хотя curl в том же контейнере работает нормально. Если вы используете proxy и видите загадочные ошибки соединения, вероятно, причина именно в этом.
Почему Thunderbit обходит большинство антибот-проблем
У Thunderbit есть два режима scraping:
- Browser Scraping: работает внутри вашего реального Chrome-браузера, наследуя cookies, состояние входа и browser fingerprint. Это обходит большинство антибот-механизмов, которые блокируют серверные запросы, потому что запрос идёт из настоящего браузера.
- Cloud Scraping: для общедоступных сайтов облако Thunderbit обрабатывает антибот-защиту в масштабе — .
Если вы тратите больше времени на борьбу с Cloudflare, чем на анализ данных, это вполне практичная альтернатива.
Честный вывод: когда web scraping в n8n работает, а когда лучше выбрать другой инструмент
n8n — отличная платформа. Но она подходит не для каждой scraping-задачи, и ни одна статья конкурентов не говорит об этом честно. Пользователи буквально спрашивают на форумах: «насколько сложно создать web scraper в n8n?» и «какой scraping-инструмент лучше всего работает с n8n?»
Где web scraping в n8n особенно силён
- Многошаговые workflows, где scraping сочетается с дальнейшей обработкой — обновлением CRM, уведомлениями в Slack, AI-анализом, записью в базу.
- Сценарии, где scraping — только один узел в большой автоматизации: собрать → обогатить → отфильтровать → отправить в CRM.
- Технические пользователи, которым комфортно работать с CSS-селекторами и логикой на основе узлов.
- Сценарии, где нужна кастомная трансформация данных между сбором и хранением.
Где web scraping в n8n становится болезненным
- Нетехнические пользователи, которым нужны данные быстро. Настройка узлов, поиск CSS-селекторов и отладка требуют слишком многого для бизнес-пользователей.
- Сайты с серьёзной антибот-защитой. Прокси и API-надстройки добавляют стоимость и сложность.
- Поддержка при изменении верстки сайта. CSS-селекторы ломаются, workflow может молча перестать работать.
- Массовый scraping по множеству разных сайтов. Для каждого сайта нужна своя настройка селекторов.
- Обогащение подстраниц. Приходится строить отдельные sub-workflows в n8n.
Сравнение: n8n, Thunderbit и Python-скрипты
| Фактор | n8n DIY scraping | Thunderbit | Python script |
|---|---|---|---|
| Необходимый уровень навыков | Средний (узлы + CSS-селекторы) | Не нужен (AI предлагает поля) | Высокий (кодинг) |
| Время настройки на новый сайт | 30–90 мин | ~2 минуты | 1–4 часа |
| Работа с антибот-защитой | Вручную (headers, proxies, APIs) | Встроенно (режимы browser/cloud) | Вручную (библиотеки) |
| Поддержка при изменении сайта | Ручное обновление селекторов | Ноль — AI адаптируется сам | Ручное обновление кода |
| Поддержка многошаговых workflows | Отлично, это сильная сторона | Экспорт в Sheets/Airtable/Notion | Нужен кастомный код |
| Стоимость в масштабе | Хостинг n8n + расходы на proxy/API | Кредиты (~1 кредит на строку) | Сервер + расходы на proxy |
| Обогащение подстраниц | Вручную — отдельный sub-workflow | Сбор подстраниц в 1 клик | Кастомный скрипт |
Вывод: используйте n8n, когда scraping — это часть сложной многошаговой автоматизации. Используйте Thunderbit, когда вам нужны данные быстро и без построения workflow. Используйте Python, когда нужен максимальный контроль и есть ресурсы разработчиков. Это не конкуренты — это дополняющие друг друга инструменты.

Реальные workflow для web scraping в n8n, которые можно взять и повторить
На форумах всё время спрашивают: «Кто-нибудь соединял это в многошаговые workflows?» Ниже — три конкретных workflow, которые вы действительно можете собрать уже сегодня.
Workflow 1: мониторинг цен конкурентов в ecommerce
Цель: ежедневно отслеживать цены конкурентов и получать уведомление, когда они снижаются.
Цепочка узлов: Schedule Trigger (ежедневно, 8:00) → Code (генерация 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 (классификация по отрасли) → узел HubSpot (создание контактов)
Примечание: в n8n есть нативный — он полезен для отправки данных в CRM. Но scraping и очистка всё равно требуют ручной работы с CSS-селекторами.
Короткий путь через Thunderbit: бесплатные и Phone Number Extractor в Thunderbit могут извлечь контактные данные в 1 клик без построения workflow. AI-разметка поможет классифицировать лиды уже во время извлечения. Тем, кому не нужен весь chain автоматизации, вообще не придётся настраивать n8n.
Workflow 3: трекер новых объектов недвижимости
Цель: раз в неделю находить новые объявления на Zillow или Realtor.com и отправлять email-дайджест.
Цепочка узлов: Schedule Trigger (еженедельно) → HTTP Request (страницы объявлений) → HTML (извлечь адрес, цену, количество спален, ссылку) → Code (очистка данных) → Google Sheets (добавить) → Code (сравнить с данными прошлой недели, отметить новые объявления) → IF (найдены новые объявления?) → Gmail/SendGrid (отправить дайджест)
Примечание: у Thunderbit есть — CSS-селекторы не нужны. Тем, кому нужен полный автоматический chain (собрать → сравнить → уведомить), больше подходит n8n; тем, кому нужны только данные по объявлениям, удобнее Thunderbit.
Для новых идей n8n community library предлагает шаблоны для , и .
Как поддерживать web scraping-пайплайны в n8n без сбоев
Production scraping — это 20% построения и 80% поддержки.
Используйте batching и задержки, чтобы не словить rate limits
Включите batching в узле HTTP Request и задайте паузу 1–3 секунды между batch-ами. Параллельные запросы — самый быстрый путь к IP-блокировке. Немного терпения здесь экономит много проблем потом.
Отслеживайте execution, чтобы не пропустить тихие сбои
Проверяйте вкладку Executions в n8n на наличие неудачных запусков. Скрапинг может тихо возвращать пустые данные, если сайт поменял верстку — workflow формально «успешен», но в таблице одни пустые ячейки.
Настройте workflow с Error Trigger, который будет срабатывать на любую ошибку и отправлять уведомление в Slack или по email. Для production-пайплайнов это не обсуждается.
Храните CSS-селекторы вне workflow, чтобы их было проще обновлять
Держите CSS-селекторы в Google Sheet или в переменных окружения n8n, чтобы обновлять их без правок самого workflow. Когда сайт меняет верстку, вам нужно будет обновить селектор только в одном месте.
Понимайте, когда пора перейти на AI-powered scraper
Если вы постоянно правите CSS-селекторы, боретесь с антибот-защитой или тратите больше времени на поддержку scraper, чем на использование данных, стоит рассмотреть AI-инструмент вроде , который каждый раз заново читает сайт и автоматически адаптируется. Хорошо работает и : Thunderbit берёт на себя хрупкий слой извлечения данных (тот самый, который ломается при каждом обновлении <div>), экспортирует данные в Google Sheets или Airtable, а n8n подхватывает новые строки через нативный trigger для Sheets/Airtable и управляет orchestration — обновлениями CRM, алертами, условной логикой, рассылкой по нескольким системам.
Итог: соберите pipeline, который подходит именно вашей команде
Web scraping в n8n — мощный инструмент, когда scraping нужен как один из шагов в более крупном workflow автоматизации. Но он требует технической настройки, постоянной поддержки и терпения при работе с пагинацией, антибот-защитой и расписаниями. В этом руководстве мы прошли весь путь: первый workflow, пагинацию — ту самую часть, которую все туториалы пропускают, — расписания, troubleshooting антибот-защиты, честную оценку того, где n8n уместен, и реальные workflow, которые можно повторить.
Я бы сформулировал это так:
- Используйте n8n, когда scraping — часть сложной многошаговой автоматизации: обновление CRM, Slack-уведомления, AI-обогащение, условная маршрутизация.
- Используйте , когда вам нужны данные быстро и без построения workflow: AI сам подсказывает поля, обрабатывает пагинацию, антибот-защиту и экспорт в 2 клика.
- Используйте Python, когда нужен максимальный контроль и есть разработчики.
И честно говоря, для многих команд лучший вариант — оба инструмента вместе: Thunderbit для извлечения, n8n для orchestration. Если хотите сравнить AI-powered scraping со своим workflow в n8n, позволит поэкспериментировать на небольшом масштабе, а устанавливается за секунды. За видеоразборами и идеями workflow загляните на .
FAQ
Может ли n8n собирать данные с сайтов с тяжёлым JavaScript?
Не с помощью одного только встроенного узла HTTP Request. HTTP Request получает сырой HTML и не может исполнять JavaScript. Для сайтов с JS-rendering нужен либо community node вроде , либо интеграция со scraping API (ScrapeNinja, Firecrawl), которое рендерит JavaScript на сервере. Thunderbit нативно работает с JS-heavy сайтами и в режиме Browser Scraping, и в Cloud scraping.
Web scraping в n8n бесплатный?
Self-hosted версия n8n бесплатна и open source. У n8n Cloud раньше был бесплатный тариф, но по состоянию на апрель 2026 года доступна только 14-дневная пробная версия; затем тарифы начинаются от $24/месяц за 2 500 executions. Для scraping защищённых сайтов также могут понадобиться платные proxy-сервисы ($5–15/GB для residential proxies) или scraping API ($49–200+ в месяц в зависимости от объёма).
Чем web scraping в n8n отличается от Thunderbit?
n8n лучше подходит для многошаговой автоматизации, где scraping — лишь часть общего процесса (например, собрать → обогатить → отфильтровать → отправить в CRM → уведомить в Slack). Thunderbit лучше для быстрого no-code извлечения данных с AI-определением полей, автоматической пагинацией и нулевой поддержкой при изменении сайтов. Многие команды используют оба инструмента вместе: Thunderbit для извлечения, n8n для orchestration.
Можно ли в n8n собирать данные с сайтов, где нужен логин?
Да, но для этого нужно настраивать cookies или session tokens в узле HTTP Request, а это может быть непросто в поддержке. В режиме Browser Scraping Thunderbit автоматически наследует вашу авторизованную Chrome-сессию — если вы вошли на сайт, Thunderbit сможет собрать то, что вы видите.
Что делать, если мой scraper в n8n внезапно перестал возвращать данные?
Сначала проверьте вкладку n8n Executions на наличие ошибок. Самая частая причина — изменение верстки сайта, из-за которого сломались CSS-селекторы: workflow «успешен», но поля пустые. Проверьте селекторы через Inspect в Chrome, обновите их в workflow (или в отдельной таблице с селекторами) и снова протестируйте. Если вы упёрлись в антибот-блокировку, пройдите по дереву диагностики из этого руководства. Для долгосрочной надёжности рассмотрите AI-powered scraper вроде Thunderbit, который автоматически адаптируется к изменениям верстки.
Узнать больше