Руководство по веб-скрапингу OpenClaw: создавайте ИИ-скраперы с резидентными прокси

AI-агенты меняют то, как люди извлекают данные из интернета. Вместо того чтобы писать хрупкие CSS-селекторы, вы описываете, что вам нужно, и позволяете агенту самому разобраться, как это получить. OpenClaw — один из фреймворков, движущих этот сдвиг.
This guide walks through web scraping with OpenClaw from a clean install to a production-ready scraper. You’ll learn what OpenClaw actually is, how its scraping pipeline works under the hood, and why the proxy layer underneath your requests matters just as much as the code on top of it.
By the end, you’ll have a working OpenClaw coding skill web scraping product listing pipeline you can point at real e-commerce pages.
Что такое OpenClaw?
OpenClaw — это фреймворк AI-агентов с открытым исходным кодом. Считайте его шлюзом, который соединяет языковую модель с внешним миром: вашим браузером, файловой системой, мессенджерами и любым инструментом, который вы регистрируете как «навык».
В своей основе OpenClaw состоит из четырёх частей:
- Gateway — демон, который работает непрерывно и маршрутизирует сообщения между каналами, моделью и инструментами
- Brain — провайдер LLM, к которому вы подключаетесь (Anthropic, OpenAI, Google или локальная модель)
- Hands — инструменты, которые агент может вызывать: управление браузером, команды shell, доступ к файлам, HTTP-запросы
- Skills — markdown-файлы с инструкциями (SKILL.md), которые учат агента, как и когда использовать инструмент для конкретной задачи
Of the four, OpenClaw web scraping skills are the piece that’s most important for this guide.
OpenClaw Coding Skill — это просто папка с файлом SKILL.md file and, usually, a supporting script. When you ask the agent to do something that matches a skill’s description, it reads the instructions and follows them.
This is what makes web scraping with OpenClaw feel fundamentally different from Playwright or Selenium. Those are libraries you import into your own script and drive line by line. OpenClaw flips the relationship: the agent reasons about the page using an accessibility tree, decides how to navigate, and calls your skill’s code when it needs deterministic, repeatable extraction logic.
Вы по-прежнему пишете настоящий код, но агент сам решает, когда и как его запускать.
| Функции | OpenClaw | Playwright | Selenium |
| Модель управления | Агент определяет действия исходя из целей на естественном языке | Вы явно прописываете каждое действие в скрипте | Вы явно прописываете каждое действие в скрипте |
| Настройка | CLI + мастер онбординга, реестр навыков | npm/pip package | Привязки для конкретных языков |
| Adaptivity | Анализирует структуру страницы, адаптируется к изменениям вёрстки | Ломается при изменении селекторов | Ломается при изменении селекторов |
| Extensibility | Навыки (SKILL.md + скрипты) | Пользовательские скрипты | Пользовательские скрипты |
| Лучшее для | Извлечение под управлением агента, беспорядочные или меняющиеся сайты | Стабильные, хорошо изученные сайты | Стабильные, хорошо изученные сайты |
| Работа с прокси | Настраивается для каждого навыка или каждого агента | Настраивается для каждого контекста | Настраивается для каждого драйвера |
Именно такая адаптивность и составляет главную привлекательность фреймворка веб-скрапинга OpenClaw по сравнению с фиксированным скриптом. Преимущество этой архитектуры в её устойчивости. Традиционный скрапер, который жёстко прописывает .product-title ломается в тот момент, когда сайт переделывает свою разметку.
Фреймворк веб-скрапинга OpenClaw, построенный на деревьях доступности и рассуждениях агента, обычно переживает небольшие изменения макета.
Как работает веб-скрапинг с OpenClaw
Прежде чем открывать терминал, полезно увидеть весь путь запроса. Типичная задача веб-скрапинга OpenClaw выглядит так:

Разберём каждый шаг:
Запрос пользователя
Вы говорите агенту, что вам нужно, простым языком: «спарси списки товаров на этой странице и дай мне название, цену и рейтинг»
Агент OpenClaw
Gateway направляет это в настроенную вами модель, которая сопоставляет запрос с установленными навыками и выбирает подходящий.
Инструмент Browser / Fetch
The skill’s script runs, either as a lightweight HTTP fetch or, for JavaScript-heavy pages, a full browser session.
NodeMaven резидентский прокси
Every outbound request is routed through a residential IP instead of your server’s own address, so the target site sees ordinary consumer traffic.
Целевой сайт
Запрос достигает сайта так, будто он пришёл от реального посетителя из реальной локации.
Структурированные данные
Ответ парсится, проверяется по вашей схеме и возвращается агенту в виде JSON.
That proxy hop in the middle is easy to skip in a demo and expensive to skip in production. We’ll get to why in the next section.
Почему важны резидентные прокси
Scraping without a proxy strategy works right up until it doesn’t. Here’s what you’re actually up against:
- Репутация IP. Дата-центры используют узкий диапазон известных блоков IP. Анти-бот системы ведут списки этих блоков и сразу блокируют их или выдают проверку.
- Ограничения скорости. Даже «чистый» IP начинает троттлиться, как только объём запросов перестаёт выглядеть человеческим.
- CAPTCHA. Suspicious traffic patterns trigger challenge pages that a script can’t solve on its own.
- Рендеринг JavaScript. Многие сайты раскрывают реальный контент только после выполнения клиентских скриптов, которые скраперы с одиночным запросом никогда не запускают.
- Отпечаток браузера. TLS-рукопожатия, порядок заголовков и canvas-отпечатки — всё это влияет на оценку доверия к вашему соединению.
- Гео-ограничения. Некоторый контент отображается только для посетителей из определённой страны, региона или даже города.
- Сохранение сессии. Скрапинг под авторизацией и многошаговое оформление заказов ломаются, если ваш IP меняется посреди сессии.
Разные типы прокси решают разные пункты из этого списка:
| Тип прокси | IP-источник | Стабильность | Лучшее для |
| Центр обработки данных | Провайдеры облачного хостинга | Высокая скорость, низкое доверие | Нечувствительные цели с низким риском блокировки |
| Резидентские | Реальные домашние устройства | Медленнее, высокое доверие | Электронная коммерция, SERP, социальные платформы |
| Интернет-провайдер | Зарегистрированы у ISP, размещены в дата-центре | Скорость дата-центра, доверие как к резидентным | Авторизованные сессии, длительные задачи |
| мобильные | Сети операторов связи (3G/4G/5G) | Наивысшее доверие, переменная скорость | Крайне агрессивные цели с анти-бот защитой |
Для большинства настроек инструмента скрапинга OpenClaw разбивка выглядит так:
- Скрапинг e-commerce → резидентные, с ротацией на каждый запрос, для широкой выгрузки каталогов
- Поисковые системы → резидентные, с ротацией, так как SERP агрессивно снимают отпечатки
- ИИ-агенты making autonomous requests → residential with a quality filter, since agents can’t manually solve a CAPTCHA mid-run
- Социальные сети → резидентные или мобильные, липкие сессии, так как эти платформы внимательно отслеживают непрерывность сессии
- Сессии с авторизацией → ISP или закреплённые резидентные прокси, так как IP должен оставаться неизменным на протяжении всей сессии
Вот где NodeMaven вписывается в настройку OpenClaw для веб-скрапинга.
Он даёт вам резидентные и мобильные прокси из одной панели управления, с автоматической ротацией IP для высоконагруженных задач.
Пул IP насчитывает более 30 миллионов резидентных адресов в 190+ странах и 1 400+ городах, и каждый IP проходит фильтр качества который удерживает долю чистых IP выше 95%.
Установка OpenClaw
Требования
- Node.js 22.19+ (Node 24 is recommended) — Node 23 is not supported
- Python 3.10+ для скрипт-скраперов из этого руководства
- API-ключ от провайдера моделей: Anthropic, OpenAI, Google или локальный эндпоинт модели
- macOS, Linux или Windows (пользователям Windows следует запускать OpenClaw под WSL2)
Installation
The fastest path is the hosted installer script. It detects your OS, installs Node if it’s missing, installs OpenClaw, and launches onboarding automatically:
В Windows (PowerShell):
Если у вас уже установлена поддерживаемая версия Node и вы предпочитаете управлять установкой самостоятельно:
Совет: если sharp не собирается во время установки (частая проблема в macOS, когда через Homebrew libvips уже установлен), принудительно используйте готовые бинарные файлы вместо сборки из исходного кода:
openclaw onboard –install-daemon делает три вещи:
- Подключает вашего провайдера модели — вы вставляете API-ключ по запросу
- Устанавливает Gateway как фоновую службу (systemd в Linux, launchd в macOS), чтобы она сохранялась после перезагрузок
- Проводит вас через необязательную настройку каналов и навыков, которую пока можно спокойно пропустить с помощью openclaw configure available later
Частая ошибка: запуск обычной команды openclaw onboard без –install-daemon оставляет Gateway запущенным только в текущей сессии терминала. Закройте терминал — и агент остановится. Всегда добавляйте этот флаг, если хотите, чтобы OpenClaw продолжал работать.
Верификация
openclaw status подтверждает, что демон Gateway запущен и слушает, обычно на порту 18789. openclaw doctor проверяет наличие типичных ошибок конфигурации: отсутствующих API-ключей, заблокированных портов или рискованных настроек прав доступа. Если любая из команд возвращает ошибки, устраните их, прежде чем двигаться дальше, поскольку каждый скилл и скрапер ниже зависит от исправного Gateway.
Предупреждение: Никогда не открывайте порт 18789 на общедоступном сервере без аутентификации перед ним.
Настройка OpenClaw для веб-скрапинга
OpenClaw’s configuration lives in a single JSON file at ~/.openclaw/openclaw.json, но для задач скрапинга вы в основном взаимодействуете с ней через переменные окружения и настройки на уровне скилла, а не путём ручного редактирования этого файла.
Создать .env file inside your skill’s working directory:
Here’s what each variable does:
- ANTHROPIC_API_KEY — authenticates the agent’s model calls; swap for OPENAI_API_KEY or another provider’s variable if you’re using a different model
- OPENCLAW_MODEL — the default model the agent uses; a fast mid-tier model is usually enough for scraping tasks, since you don’t need the most expensive model to decide “click next page”
- NODEMAVEN_USERNAME / NODEMAVEN_PASSWORD — ваши учётные данные прокси из панели управления NodeMaven; имя пользователя также может напрямую кодировать параметры страны, города и сессии (например, username-country-us-sid-98213)
- NODEMAVEN_HOST / NODEMAVEN_PORT — NodeMaven’s gateway address; port 8080 is used for HTTP, 1080 for SOCKS5
Скиллы читают секреты через skills.entries.*.env in OpenClaw’s config, which injects them into the skill’s process for that turn only, not into a shared sandbox. That keeps your proxy password out of prompts and logs.
Как только ваш .env настроен, проверьте подключение к прокси независимо от OpenClaw, прежде чем подключать его к скиллу:
If that returns an IP address that isn’t your own, the proxy is live and you’re ready to build.
Создание вашего первого скрапера
Before the full product listing tutorial, let’s build a simpler scraper you can run standalone, outside of any skill wrapper. This version fetches a page through the NodeMaven proxy, parses it, retries on failure, and writes clean JSON to disk.
Краткий разбор того, что делает каждая часть:
- Imports — запросы handles HTTP, BeautifulSoup parses HTML, python-dotenv loads your .env файл, чтобы учётные данные никогда не хранились в самом скрипте
- Настройка прокси — PROXY_URL формирует единую строку авторизованного прокси из ваших учётных данных NodeMaven, используемую как для HTTP-, так и для HTTPS-трафика
- fetch_with_retry — повторяет неудавшиеся запросы с экспоненциальной задержкой (2 ** attempt секунд), so a single dropped connection doesn’t kill the whole run
- scrape_page — the actual extraction logic, this is the part you’ll customize per site
- save_json — записывает результаты на диск в формате, который может использовать любой последующий инструмент
Перед запуском установите зависимости:
This script works standalone, but it’s also exactly the shape of script an OpenClaw skill wraps. That’s the core building block of web scraping with OpenClaw at any scale, and it’s what we’ll wrap into a full skill next.
Навык программирования OpenClaw (пример веб-скрапинга списка товаров)
This is the section that matters most if you’re scraping e-commerce data. We’re going to wrap the scraper above in a proper OpenClaw skill, so the agent can call it whenever you ask it to pull a product listing.
Приведённый ниже паттерн skill для написания кода в OpenClaw (веб-скрапинг списка товаров) извлекает шесть полей по каждому товару: name, цена, наличие, rating, product URL, и image URL, и всё это выдаётся в формате JSON.
Начните со структуры папок:
SKILL.md требуется YAML-фронтматтер плюс инструкции, которым следует агент:
Declaring env in the frontmatter’s metadata.openclaw.requires block matters: if the script references a variable the frontmatter doesn’t declare, ClawHub’s scan flags a metadata mismatch and blocks the skill from publishing. Keep the two in sync.
Теперь сам скрипт извлечения:
Разберём построчно, что стоит выделить:
- Селекторы намеренно сделаны нестрогими (.product-card, .product, [data-product]), поскольку реальные страницы каталогов редко используют одинаковые имена классов; настройте их под свою цель после того, как изучите страницу
- Все поля необязательны, кроме name — a missing price or rating shouldn’t crash the whole scrape, it should just come back as null
- try/except inside the loop means one malformed product card doesn’t take down the other forty on the page
- argparse позволяет навыку OpenClaw вызывать этот скрипт напрямую из команды, которую запускает агент, передавая URL и путь вывода в качестве аргументов
Как и большинство навыков веб-скрапинга OpenClaw, этот устанавливается путём помещения папки в ~/.openclaw/skills/product-scraper/ и перезапустите Gateway:
Убедитесь, что он загрузился корректно:
If product-scraper shows up in that list, ask the agent directly: “Scrape the product listings on https://example-store.com/bestsellers”. It reads the skill, runs the script through your NodeMaven proxy, and reports back what it found. This OpenClaw coding skill setup is the same pattern you’ll reuse for any structured extraction task, just with different selectors.
Примеры веб-скрапинга с OpenClaw
Как только приведённый выше шаблон заработает, большинство других примеров веб-скрапинга на OpenClaw окажутся вариациями того же скрипта с иной логикой парсинга. Ниже приведены пять распространённых из них.
Пример 1: новостной сайт
Note the word_count вместо полного текста статьи. Копирование полного текста статьи создаёт риски нарушения авторских прав; извлекайте метаданные и краткое содержание, а не дословный контент.
Пример 2: документация
Полезно для построения карты сайта портала документации, прежде чем решать, какие страницы требуют более глубокого скрапинга.
Пример 3: поиск Google
Предупреждение: Google’s result markup changes frequently and aggressively rate-limits scripted traffic. Вращающиеся резидентные IP-адреса на каждый запрос здесь практически обязательна, но даже при этом будьте готовы регулярно обновлять селекторы.
Пример 4: Страницы товаров
Reuse the parse_products функцию из предыдущего раздела, но нацельте её на отдельную страницу товара вместо списка и замените CSS-селекторы под макет детальной страницы (таблицы характеристик, галереи изображений и количество отзывов вместо сеток карточек).
Пример 5: Статьи блога
Good for building a content calendar view of a competitor’s blog without pulling the actual post text.
Лучшие практики
Хорошие привычки здесь экономят реальное время на отладку в будущем:
- Уважайте robots.txt — проверяйте его перед скрапингом и соблюдайте запрещённые пути
- Добавляйте задержки между запросами — даже случайная задержка в 1-3 секунды выглядит менее механической, чем фиксированный интервал
- Встраивайте повторные попытки во всё — сети сбоят, прокси иногда отваливаются по тайм-ауту, сайты ограничивают частоту запросов; повторные попытки с экспоненциальной задержкой компенсируют все три случая
- Кэшируйте ответы во время разработки — don’t re-fetch the same page ten times while you’re still tuning selectors
- Логируйте всё — коды состояния, количество повторных попыток и ошибки парсинга, чтобы неудавшийся запуск можно было отладить постфактум
- Ротируйте IP для объёмов, используйте один IP для сессий — подстраивайте поведение прокси под задачу, а не наоборот
- Поддерживайте единообразие структурированного вывода — стабильная JSON-схема значительно упрощает дальнейшую обработку
- Отслеживайте процент успешных запросов во времени — медленно снижающийся процент успеха обычно первый признак того, что сайт изменил свою защиту
Устранение неисправностей
Most issues follow predictable patterns. Here’s what you’re likely to run into and how to fix it.
| Issue | Причина | Решение |
| 403 Запрещено | IP или отпечаток помечен как бот | Переключитесь на резидентный прокси, ротируйте IP, проверьте, что заголовки соответствуют реальному браузеру |
| 429 Слишком много запросов | Превышен лимит запросов | Добавьте задержки, снизьте параллелизм, ротируйте IP более агрессивно |
| Timeouts | Прокси или целевой сервер медленно отвечает | Увеличить timeout, повторите попытку с экспоненциальной задержкой, проверьте, что регион прокси соответствует целевому |
| JavaScript не рендерится | Странице требуется выполнение на стороне клиента | Use OpenClaw’s browser tool instead of a plain HTTP fetch |
| Пустой HTML | Система обнаружения ботов отдаёт пустую страницу-заглушку | Сначала проверьте в реальном браузере, проверьте наличие JS-испытания |
| Заблокированный IP | Слишком часто используемый адрес или адрес с низкой репутацией | Смените провайдера или включите фильтр качества в пуле прокси |
| Недействительный прокси | Неверные учётные данные или некорректная строка прокси | Скопируйте учётные данные из панели управления заново и проверьте их с помощью отдельного теста curl |
| Ошибки OpenClaw в логах | Неправильно настроенный skill или отсутствующая зависимость | Беги openclaw doctor и openclaw skills list –eligible |
| Ошибки установки | Проблема с PATH после npm install | Проверить npm prefix -g находится в вашем $PATH, перезапустите терминал |
| Ошибки API | Недействительный или просроченный API-ключ модели | Re-run openclaw configure и введите ключ заново |
Зачем использовать NodeMaven вместе с OpenClaw?
The gap between “works in a demo” and “works every day” almost always comes down to the proxy layer. Here’s how the options actually compare in practice:
| Настройка | Что происходит |
| Без прокси | Your server’s IP gets flagged within hours on any moderately protected site |
| Дешёвые/общие прокси дата-центров | Быстро блокируются, поскольку диапазон IP уже есть в большинстве списков блокировки анти-бот систем |
| Премиальные резидентные прокси (обычные) | Работают, но ротацию и управление сессиями часто неудобно настраивать |
| NodeMaven | Automatic Вращение, закреплённые сессии, чистота IP 95%+ и стабильные показатели успеха для e-commerce, поисковых и социальных целей |
В реальном сценарии: инструмент для скрапинга OpenClaw, ежедневно собирающий данные о ценах у десятка ритейлеров, нуждается в свежем IP на каждый запрос, чтобы избежать обнаружения шаблонов, тогда как рабочий процесс на LinkedIn или на основе аккаунтов требует обратного — одного стабильного IP, удерживаемого на протяжении всей сессии.
NodeMaven’s dashboard lets you switch between rotating and sticky sessions from the same account, across 190+ countries and 1,400+ cities, without juggling separate providers for each use case.
Заключение
OpenClaw дает вам агентно-управляемый способ скрапинга веба, который адаптируется лучше, чем жестко закодированные скрипты с селекторами, а skills позволяют легко упаковать эту логику во что-то многократно используемое.
Но ничего из этого не работает без прокси-слоя, благодаря которому ваши запросы выглядят как обычный трафик. Теперь у вас есть полноценный навык кодирования веб-скрапинга в OpenClaw, подкрепленный чистыми резидентными IP и готовый к работе с реальными целями.
Если вы хотите протестировать прокси-сторону этой настройки, прежде чем выбирать тарифный план, NodeMaven’s trial это недорогой способ увидеть, как ведет себя ваш конкретный целевой сайт с реальным пулом резидентных IP за ним.




