Введение
Веб-страницы являются одним из крупнейших и наиболее часто обновляемых источников знаний, доступных для AI-приложений. AI-агенты используют их для исследования компаний и рынков. Системы, дополненные извлечением данных (RAG), используют их для создания индексируемых баз знаний. Команды данных используют их для мониторинга цен, каталогов продуктов, поисковых рейтингов, новостей и изменений в бизнесе.
Тем не менее, получение надежных данных с современного веба больше не так просто, как отправить HTTP-запрос и разобрать ответ. Многие веб-сайты рендерят свой контент с помощью JavaScript, загружают информацию асинхронно, запускают контент через прокрутку или клики и используют сложные системы контроля рисков для выявления автоматического трафика. Даже после того как страница была получена, ее HTML часто заполнен навигацией, скриптами, стилями, рекламой и другими элементами, не относящимися к AI-модели.
Nstproxy Crawl — это API для веб-краулинга на базе AI, который преобразует веб-сайты в чистые, структурированные данные, готовые для LLM. Разработчики отправляют URL и выбирают требуемый выходной формат. Nstproxy Crawl обрабатывает доступ к страницам, рендеринг браузера, маршрутизацию прокси, отпечатки браузера, повторные попытки, извлечение контента, конвертацию форматов и управление задачами через одно API.
Вместо того чтобы поддерживать отдельный сканер для каждого веб-сайта, команды могут использовать Nstproxy Crawl в качестве многоразового слоя веб-данных для AI-агентов, RAG-пайплайнов, аналитических систем и корпоративных приложений.

Проблема извлечения веб-данных сегодня — почему мы создали Nstproxy Crawl
Получение веб-страницы раньше было однострочным HTTP-запросом. Теперь это не так.
Большая часть современного веба рендерится на стороне клиента, ограничена все более сложными анти-бот системами и структурирована так, что это затрудняет понимание языковой модели. Команда, которая ставит перед собой задачу "просто извлечь несколько страниц" для AI-агента или RAG-пайплайна, быстро оказывается в ситуации, когда ей нужно построить:
- Кластер браузеров без головы для страниц, рендерящихся с помощью JavaScript
- Ротацию прокси, чтобы избежать блокировок по IP
- Логику повторных попыток и тайм-аутов для ненадежных страниц и сетевых ошибок
- Очистку контента от рекламы, навигации и стандартных шаблонов
- Конвертацию HTML в Markdown, чтобы LLM действительно мог использовать выходные данные
- Планирование параллельности и мониторинг сбоев на масштабах
Ничто из этого не является продуктом. Это налог, который вы платите, прежде чем сможете построить продукт. Мы создали Nstproxy Crawl, потому что постоянно видели одну и ту же закономерность: команды, разрабатывающие действительно интересные AI-приложения, застревали на обслуживании инфраструктуры для сканирования.
Три вещи убедили нас, что это нужно решить один раз и правильно, как инфраструктуру:
- Сканирование тихо стало проблемой инфраструктуры, а не задачей по кодированию. Разработчики, создающие AI-агентов и RAG-системы, тратили реальное инженерное время на оркестрацию безголовых браузеров, ротацию прокси и обработку CAPTCHA — время, которое следовало бы потратить на проектирование запросов, качество извлечения и логику продукта.
- Существует реальный разрыв между тем, что производят традиционные сканеры, и тем, что нужно AI. Большинство инструментов для сканирования были созданы для SEO или простого архивирования, и они возвращают "грязный" HTML — полный скриптов, рекламы и шумового разметки. Если вы подаете это LLM, вы тратите дополнительные токены на контент, который активно мешает модели понимать страницу.
- Анти-бот-защита перешла на уровень отпечатков браузера. Сайты больше не просто фильтруют по IP — они инспектируют рендеринг Canvas, свойства WebGL, отпечатки шрифтов и аппаратные характеристики для выявления автоматизации. Краулер с несогласованным или неполным отпечатком блокируется еще до того, как увидит контент.
Nstproxy Crawl одновременно решает все три проблемы: он рендерит страницы как настоящий браузер, очищает контент до необходимого для LLM уровня и работает на бэкенде с отпечатком браузера, который построен для противодействия именно таким видам обнаружения — чтобы ваше приложение никогда не столкнулось с этими проблемами.
Что такое Nstproxy Crawl?
1. Обзор Nstproxy Crawl
Nstproxy Crawl — это высокопроизводительное API для веб-краулинга, предназначенное для разработчиков и команд данных. Оно стандартизирует полный рабочий процесс сбора веб-данных как сервис plug-and-play.
Предоставив целевой URL, API может получить и отрендерить страницу, извлечь основной контент и вернуть данные, которые могут быть использованы напрямую AI-моделью или бизнес-системой. Оно поддерживает точное одностраничное извлечение, асинхронную обработку для более долгих задач и сканирование на уровне сайта с настраиваемой глубиной, лимитами страниц и правилами для URL. На уровне доступа Nstproxy Crawl комбинирует технологию отпечатков браузера с прокси-инфраструктурой Nstproxy для имитации реалистичной среды просмотра. На уровне доставки он поддерживает Markdown, очищенный HTML, сырьевые данные страницы, ссылки, скриншоты и PDF. Обработка рендеринга, очистки, повторных попыток, планирования и хранения результатов осуществляется сервисом, поэтому приложения интегрируются с одним единым интерфейсом, а не с набором хрупких скриптов для сбора данных.
В практическом применении Nstproxy Crawl может служить:
- инструментом для чтения веб-контента для ИИ-агентов;
- слоем сбора и очистки в пайплайне RAG;
- движком мониторинга веб-сайтов для цен, продуктов и рыночных изменений;
- управляемым бэкендом для сбора данных для платформ данных и внутренних приложений.
Кратко: Nstproxy Crawl является слоем между "URL" и "данными, которые ваша ИИ-система может фактически использовать," — так вы можете прекратить поддерживать скрипты для сбора данных и вместо этого вызвать конечную точку.
2. Ключевые характеристики Nstproxy Crawl: от URL до готовых к производству веб-данных
Nstproxy Crawl объединяет возможности, которые обычно распределены между HTTP-клиентом, кластером браузеров, пулом прокси, конвейером извлечения, очередью задач и хранилищем артефактов. Разработчики контролируют рабочий процесс через параметры API и получают согласованные результаты независимо от структуры страницы.
Дружественный к разработчикам API для сбора данных
Сервис предлагает стандартный REST API для полного потока от конфигурации запроса до извлечения результата. Один запрос может указывать целевой URL, форматы вывода, таймаут, извлечение основного контента, область сбора данных и другие параметры выполнения.
Синхронный сбор данных возвращает результат в запросе, когда страница загружается в предсказуемый период. Асинхронный сбор данных немедленно возвращает ID задачи, позволяя приложению опрашивать статус и извлекать результат позже. Сбор данных на уровне сайта начинается с входного URL и обнаруживает внутренние страницы в соответствии с явной глубиной, количеством страниц, правилами включения и исключения.
Официальные SDK доступны для Node.js, Python и Go, что делает интеграцию Crawl в существующие сервисы, скрипты, инструменты агентов и пайплайны данных простой.
Готовый к использованию ИИ Markdown и извлечение структурированных данных
Nstproxy Crawl делает больше, чем просто загружает веб-страницу. Он может анализировать структуру страницы, изолировать основной контент, удалять отвлекающие элементы и преобразовывать результат в чистый Markdown.
Markdown сохраняет заголовки, абзацы, списки и ссылки без объема тегов, стилей и скриптов, находящихся в сыром HTML. Это делает его сильным выбором для подсказок LLM, ответов инструментов агентов, поглощения RAG, обобщения, классификации и структурированного извлечения. Опция onlyMainContent может дополнительно сократить навигацию, рекламу, заголовки, подвал и другие повторяющиеся элементы макета.
Для рабочих процессов, требующих структуры DOM или кастомного парсинга, API также может возвращать очищенный HTML, сырьевые данные, ссылки и структурированную метаданные страницы, такие как заголовок, язык и HTTP-статус.
Рендеринг на JavaScript для современных веб-сайтов
Большая часть современного веба — сайты на React, Vue и Next.js, страницы цен, списки продуктов, доски объявлений по вакансиям — просто не существует в начальном HTML-ответе. Nstproxy Crawl открывает страницу в реальной среде браузера, ждет завершения рендеринга и только затем извлекает содержимое, так как вы видите то, что видит реальный посетитель.
У вас есть тонкий контроль над тем, как ждут:
- Ждать CSS-селектор (например,
main,article,.content,#app), чтобы извлечение происходило только после окончания рендеринга реального контента — а не загрузочной схемы. - Настроить дополнительное время ожидания для медленных ответов API, анимаций или лениво загружаемых разделов.
- Организовать действия браузера — нажать "загрузить еще", прокрутить для триггера ленивой загрузки, заполнить поле формы, запустить пользовательский JavaScript или дождаться завершения конкретного сетевого запроса — прежде чем запускать извлечение.
Отпечаток браузера и прокси-инфраструктура
Современные системы контроля доступа оценивают больше, чем лишь репутация IP. Они также могут проверять TLS и отпечатки браузера, характеристики устройства, свойства рендеринга, шрифты, поведение Canvas, аппаратные параметры и атрибуты WebGL.
Nstproxy Crawl использует архитектуру с отпечатком браузера для создания более согласованной среды просмотра. Он работает напрямую с прокси-инфраструктурой Nstproxy, позволяя прокси-ротацию и географическую нацеливание без необходимости, чтобы разработчики управляли своими собственными пулами прокси.
Близкая интеграция між движком краулинга и прокси-ресурсами особенно полезна для долгосрочных, высокообъемных бизнес-нагрузок. Когда условия доступа изменяются, базовые уровни краулинга и прокси могут быть обновлены без необходимости переписывать код сбора данных на уровне приложения.
Надежный сбор данных с управлением повторными попытками и задачами
Производственный сбор данных сталкивается с временными сбоями постоянно — медленные сайты, ненадежные сети, временно недоступные прокси. Nstproxy Crawl справляется с этим на уровне инфраструктуры:
- Автоматические повторные попытки при восстанавливаемых сбоях, основываясь на состоянии задачи и типе сбоя — без необходимости писать логику повторных попыток.
- Конфигурируемые таймауты для каждой задачи, чтобы одна медленная страница никогда не блокировала ваш конвейер; используйте короткие таймауты для простых страниц и более длинные для сайтов с большим объемом JS или медленно реагирующих.
- Запросы статуса задач по идентификатору, чтобы вы могли проверить, обрабатывается ли работа, завершена или завершилась с ошибкой.
- Синхронные или асинхронные режимы — ждите немедленного результата или отправляйте и опрашивайте позже для длительных страниц, глубоких обходов или пакетных заданий.
- Мониторинг прогресса пакетов для обходов на уровне сайта — общее количество, завершенные, ожидающие и неудачные, с пагинированными результатами для отслеживания и анализа сбоев.
Масштабируемый обход для корпоративных нагрузок
Nstproxy Crawl создан для выполнения множества задач одновременно, а не только одной за раз. Задачи распределяются через очередь с учетом приоритетов, чтобы работы с временными ограничениями двигались вперед по сравнению с рутинными, в то время как нормальный трафик по-прежнему обрабатывается в стабильном порядке. Ограничения по скорости применяются по уровням тарифных планов для защиты как целевых сайтов, так и совместно используемой инфраструктуры от перегрузки.
В сочетании с оплатой на основе использования на бесплатных, стартовых, растущих и масштабных тарифах это означает, что тот же API масштабируется от одного разработчика, тестирующего прототип, до корпоративной команды, работающей над крупными, непрерывными нагрузками по обходу — без необходимости менять инструменты или переосмыслять что-либо по мере роста использования.
3. Модель ценообразования
Nstproxy Crawl выставляет счета в основном за успешный запрос / рендеринг страницы, а не за попытки:
- Запрос оплачивается, когда содержимое страницы фактически извлечено (получен HTTP-код состояния без сетевой ошибки — это включает случаи, такие как 404/403, которые все равно считаются успешной выборкой).
- Ширина канала выставляется по фактически потребленному трафику.
- Если контент не может быть извлечен из-за системной проблемы, с вас не взимается плата.
Рендеринг JavaScript, извлечение Markdown, экспорт PDF и скриншоты включены в базовую услугу — без отдельных затрат. Трафик прокси оплачивается отдельно в зависимости от использования.
| Тариф | Лучшие предложения | Что вы получаете |
|---|---|---|
| Бесплатная пробная версия | Проверка функциональности, прототипирование | $1 USD в виде пробного кредита при подписке |
| Оплата по мере использования | Без обязательств, переменное использование | $1.2 / 1,000 запросов, без подписки |
| Стартовый | Команды на ранних стадиях, небольшой объем | Базовая параллельность, стандартные цены на прокси |
| Рост | Команды, масштабирующиеся, более высокая частота | Более высокая параллельность, лучшие цены на прокси, повышенный приоритет очереди |
| Масштаб | Высокая параллельность, высокая пропускная способность, корпоративный | Максимальная параллельность, самые конкурентоспособные тарифы на прокси, высший приоритет очереди |
| Корпоративный | Индивидуальные требования | Индивидуальный контракт и ценообразование |
Подписка не требуется для начала — зарегистрируйтесь, получите пробный кредит и переходите на оплату по мере использования, когда будете готовы.
4. Форматы вывода
Nstproxy Crawl может возвращать различные представления одной и той же страницы, позволяя каждой последующей системе использовать наиболее подходящий формат.
| Формат | Наиболее подходит для | Характеристики |
|---|---|---|
| Markdown | Подсказки LLM, AI-агенты, RAG, обобщение, извлечение | Чистый семантический текст с меньшим количеством ненужных токенов, чем HTML |
| HTML | Парсинг DOM, реконструкция страниц, анализ таблиц и ссылок | Сохраняет структуру HTML, поддерживая выборочную очистку |
| Сырые данные | Отладка, индивидуальный парсинг, снимки, анализ кодировок | Сохраняет наиболее полные оригинальные данные страницы, но может содержать скрипты и шум |
| Скриншот | Визуальная проверка, мониторинг страниц, аудит, доказательства | Захватывает визуальное состояние после действий JavaScript и браузера |
| Архивирование, оффлайн-обзор, отчеты, документы о соблюдении | Сохраняет переносимое представление страницы после рендеринга |
Большие результаты могут быть возвращены в виде ссылочных токенов, включая markdownRef, htmlRef, rawDataRef, screenshotRef или pdfRef. Полный артефакт затем может быть получен через конечную точку хранения:
GET /api/v1/crawl/storage/read?st={ref}
Как работает Nstproxy Crawl
Запрос на обход проходит через семь этапов:
- Отправка — Приложение отправляет URL, форматы вывода и параметры обхода.
- Проверка — Nstproxy Crawl проверяет аутентификацию, поля запроса, целевой URL и лимиты учетной записи.
- Планирование — Задача входит в управляемую очередь в соответствии с типом нагрузки и приоритетом.
- Доступ и рендеринг — Сервис выбирает среду обхода, применяет настройки прокси и отпечатков, загружает страницу и выполняет действия JavaScript или браузера при необходимости.
- Извлечение и преобразование — Движок идентифицирует запрашиваемый контент и преобразует его в Markdown, HTML, сырые данные, скриншот, PDF или ссылки.
- Хранение и доставка — Небольшие результаты могут быть возвращены встроенными. Большие выходные данные хранятся и возвращаются через ссылочные токены.
- Наблюдение — Синхронные запросы возвращают завершенный результат напрямую. Асинхронные и задачи на уровне сайта открывают конечные точки статуса и прогресса задач. Этот общий рабочий процесс позволяет приложению обрабатывать статическую статью, динамическую продуктовую страницу и целый раздел документации через один и тот же сервис.
Быстрый старт
Зарегистрируйтесь на nstproxy, получите пробный кредит или добавьте баланс по мере использования, и скопируйте API-ключ со страницы учетной записи или игровой площадки для сканирования.
Следующий запрос преобразует https://example.com в Markdown:
curl -X POST "https://api.nstproxy.com/api/v1/crawl/scrape" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "https://example.com", "formats": ["markdown"], "timeout": 60000, "onlyMainContent": true }'
Успешный ответ содержит статус задачи, Markdown, ссылочный токен и метаданные страницы:
{ "data": { "code": 0, "data": { "markdown": "# Пример домена\n\nЭтот домен предназначен для использования в примерах документации.", "markdownRef": "REFERENCE_TOKEN", "metadata": { "language": "en", "statusCode": 200, "title": "Пример домена" } }, "status": "completed", "success": true }, "err": false, "msg": "SUCCESS", "code": 200 }
Каждый API-запрос должен включать API-ключ:
x-api-key: YOUR_API_KEY
Content-Type: application/json
Храните ключ в переменной окружения или менеджере секретов. Не выставляйте его в коде на стороне браузера и не добавляйте в репозиторий.
Примеры API
Все запросы к Nstproxy Crawl API требуют API-ключ, переданный в заголовке запроса. Вы можете найти свой API-ключ в панели управления учетной записи после регистрации.
x-api-key: YOUR_API_KEY
Content-Type: application/json
Базовый URL для всех конечных точек — https://api.nstproxy.com. Храните свой API-ключ в переменной окружения — никогда не выставляйте его в клиентском коде и не добавляйте в репозиторий.
5. Сканирование одной страницы
Сканирование одной страницы извлекает указанный URL и возвращает содержимое в одном или нескольких выходных форматах: Markdown, HTML, ссылки, скриншот, PDF или сырые данные. Используйте эту конечную точку, когда ваш поток обработки обрабатывает отдельные страницы — извлечение статей, мониторинг продуктовых страниц, переработка документации или чтение веб-агента в реальном времени.
Два режима отправки доступны в зависимости от того, нужно ли вашему приложению немедленно получить результат или оно может опрашивать для завершения:
Синхронное сканирование
Синхронная конечная точка ожидает завершения задачи и возвращает результат непосредственно в ответе. Используйте этот режим для одиночных страниц с предсказуемыми временными затратами на обработку, когда вызывающий объект требует результат немедленно — вызовы инструментов агента в реальном времени, извлечение контента по запросу или интерактивные потоки работы.
POST /api/v1/crawl/scrape
Пример запроса
{ "url": "https://example.com", "formats": ["markdown"], "timeout": 60000, "onlyMainContent": true }
Пример ответа
{ "code": 200, "err": false, "msg": "success", "data": { "code": 0, "success": true, "status": "completed", "data": { "markdown": "# Пример домена", "markdownRef": "xxx", "links": ["https://www.iana.org/domains/example"], "metadata": { "title": "Пример домена", "statusCode": 200, "language": "en" } } } }
Не полагайтесь только на HTTP-код состояния, чтобы определить, успешен ли сканирование. Всегда проверяйте
success,statusиdataв теле ответа — HTTP 200 означает, что запрос был получен, а не что страница была успешно извлечена.
Асинхронное сканирование
Асинхронная конечная точка немедленно возвращает идентификатор задачи и обрабатывает страницу в фоновом режиме. Используйте этот режим для страниц с тяжелым JavaScript, большими временами рендеринга, страниц за медленными сетями или любого рабочего процесса, который не должен удерживать открытое HTTP-соединение при ожидании результатов.
POST /api/v1/crawl/scrape?async=true
Пример запроса
{ "url": "https://example.com", "formats": ["markdown"], "timeout": 60000, "onlyMainContent": true }
Пример ответа
{ "code": 200, "err": false, "msg": "success", "data": { "id": "01KKKB6KPJT558N4MS5EMWF6TV", "status": "processing", "cached": false } }
Получите результат, опрашивая с использованием возвращенного идентификатора задачи:
GET /api/v1/crawl/scrape/{taskId}
6. Сканирование на уровне сайта
Краулинг на уровне сайта начинается с заданного URL и автоматически обнаруживает и обрабатывает внутренние страницы в пределах настроенных границ. Используйте этот конечный пункт для загрузки документационных сайтов, каталогов продуктов, разделов контента конкурентов или любых структурированных наборов контента, полный список URL-адресов которых не известен заранее.
Всегда устанавливайте явные границы перед отправкой краулинга на уровне сайта. Без
maxDepth,maxPagesи правил исключения краулинг может расшириться на страницы поиска, URL-адреса пагинации, входные формы и загрузки файлов — потребляя бюджет и время на контент, который вам не нужен.
POST /api/v1/crawl
Пример запроса
{ "url": "https://example.com", "formats": ["markdown", "html"], "maxDepth": 3, "maxPages": 50, "includeUrls": ["*example.com/docs/*"], "excludeUrls": ["*example.com/admin/*"], "ignoreQuery": true, "onlyMainContent": true, "timeout": 60000 }
Пример ответа
{ "code": 200, "err": false, "msg": "success", "data": { "id": "01KKKCD3KXW3TB5R8BBWDA3VYP", "status": "processing" } }
Используйте возвращаемый ID краулинга для проверки прогресса и получения результатов страниц.
7. Запрос статуса задания и результатов
Запрос результата скрапинга одной страницы
Возвращает статус задания, флаг успеха и данные результата для задания скрапинга одной страницы. Для больших выводов ответ может содержать ссылки на содержимое вместо встроенного контента — смотрите раздел ниже о чтении крупных результатов.
GET /api/v1/crawl/scrape/{taskId}
Пример ответа
{ "data": { "code": 0, "data": { "markdownRef": "nL9gU9mOz9uHEtfXObDTo8K2wPh3F0ekLeDT_-NR-0Bl3-yl2_1kKY16Vbjy3Nj1nPpGK5o9GYnnSvAZqZxNRgrhgKuHrBS9JK4YgQHb0wYBUv20", "metadata": { "language": "en", "statusCode": 200, "title": "Example Domain" }, "rawDataRef": "GTZQPXe-_oEWhBvlN1ZbOJt1unITySNEjb1QzVgv_FKTHVJrOe1h59O_hwVB2MaO98nq-V4EU6V1qdQAYz6sqT3mz-GEi85CxW7E5ptiO5MecpOsHg" }, "status": "completed", "success": true }, "err": false, "msg": "SUCCESS", "code": 200 }
Запрос статуса краулинга на уровне сайта
Возвращает общий прогресс краулинга: всего обнаруженных страниц, завершенных, ожидающих и завершившихся неудачей. Используйте этот конечный пункт для мониторинга длительных задач краулинга и определения, когда все страницы будут доступны для получения.
GET /api/v1/crawl/{crawlId}
Пример ответа
{ "data": { "code": 0, "completed": 5, "failed": 0, "id": "01KXMX69PNHS92BA98HND5Z7T9", "pending": 0, "status": "completed", "total": 5 }, "err": false, "msg": "SUCCESS", "code": 200 }
Получение результатов страниц краулинга
Возвращает результаты по страницам для завершенного или находящегося в процессе краулинга на уровне сайта, с пагинацией с использованием курсора. Используйте этот конечный пункт для получения обработанного контента страницу за страницей, отслеживания успешных и неудачных URL-адресов, а также для передачи результатов в последующие потоки по мере их завершения, а не дожидаясь завершения всего краулинга.
GET /api/v1/crawl/{crawlId}/pages
Пример ответа
{ "code": 200, "err": false, "msg": "success", "data": { "total": 25, "completed": 8, "nextCursor": "xxx", "data": [ { "taskId": "01KKKB6KPJT558N4MS5EMWF6TV", "url": "https://example.com/docs/start", "success": true, "status": "completed", "data": { "markdownRef": "xxx", "htmlRef": "xxx", "links": ["https://example.com/docs/next"], "metadata": { "title": "Getting Started", "statusCode": 200 } } } ] } }
Используйте nextCursor для пагинации через результаты, когда краулинг обработал больше страниц, чем возвращает один ответ. Это особенно полезно для крупных краулингов сайтов, когда получение всех результатов сразу дало бы слишком большой ответ.
8. Чтение больших файлов результатов
Для больших выводов — документов Markdown, полного HTML-страниц, скриншотов, PDF-файлов и сырых данных страниц — API возвращает ссылочный токен вместо встроенного содержимого. Ссылочные токены включаются в результаты задачи под следующими полями:
markdownRef— очищенный результат в MarkdownhtmlRef— очищенный результат в HTMLrawDataRef— сырые данные страницы, полученные с целевого сервераscreenshotRef— изображение полного скриншота страницыpdfRef— экспортированный PDF-файл
Получите полный контент, передав ссылочный токен на конечный пункт хранения:
GET /api/v1/crawl/storage/read?st={ref}
Используйте этот конечный пункт для загрузки скриншотов для визуального контроля качества, получения PDF для архивных рабочих процессов или чтения больших документов Markdown, которые превышают пределы размера встроенного ответа. Ссылочные токены связаны с задачей, которая их создала — всегда используйте токен, возвращенный из результата задачи, а не вручную сконструированное значение.
Примеры SDK
Официальные SDK доступны для Node.js, Python и Go. Каждый SDK предоставляет типизированные модели запросов и ответов и может быть интегрирован непосредственно в существующие сервисы, конвейеры данных, инструменты агентов и рабочие процессы поглощения RAG.
9. Node.js
Репозиторий: https://github.com/nstdata-ai/crawl-node
Установка
npm install @nstdata-ai/crawl
SDK для Node.js включает встроенные декларации типов TypeScript:
{ "types": "dist/index.d.ts" }
Синхронное сканирование одной страницы
import { NstDataClient, Format } from "@nstdata-ai/crawl"; const TOKEN = process.env.NSTDATA_API_TOKEN || "YOUR_API_TOKEN"; async function main() { const client = new NstDataClient(TOKEN); const res = await client.submitScrapeTaskSync({ url: "https://example.com/", formats: [Format.MARKDOWN], timeout: 60000, onlyMainContent: true, }); const markdown = await res.data?.getMarkdown(); console.log(markdown); } main().catch(console.error);
Сканирование на уровне сайта
import { NstDataClient, Format } from "@nstdata-ai/crawl"; const client = new NstDataClient("YOUR_API_TOKEN"); const submit = await client.submitCrawlTask({ url: "https://example.com/", formats: [Format.MARKDOWN, Format.HTML], maxDepth: 3, maxPages: 50, ignoreQuery: true, onlyMainContent: true, }); console.log(submit.id); const status = await client.getCrawlStatus(submit.id!); console.log(status);
Python
Репозиторий: https://github.com/nstdata-ai/crawl-py
Установка
pip install nstdata-ai-crawl
import nstdata_ai_crawl
Синхронное сканирование одной страницы
import os from nstdata_ai_crawl import NstDataClient, ScrapeRequestDto, Format TOKEN = os.getenv("NSTDATA_API_TOKEN", "YOUR_API_TOKEN") with NstDataClient(TOKEN) as client: res = client.submit_scrape_task_sync(ScrapeRequestDto( url="https://example.com/", formats=[Format.MARKDOWN], timeout=60000, onlyMainContent=True, )) print(res.data.get_markdown())
Сканирование на уровне сайта
from nstdata_ai_crawl import NstDataClient, CrawlRequestDto, Format with NstDataClient("YOUR_API_TOKEN") as client: submit = client.submit_crawl_task(CrawlRequestDto( url="https://example.com/", formats=[Format.MARKDOWN, Format.HTML], maxDepth=3, maxPages=50, ignoreQuery=True, onlyMainContent=True, )) print(submit.id) status = client.get_crawl_status(submit.id) print(status)
Go
Репозиторий: https://github.com/nstdata-ai/crawl-go
Установка
go get github.com/nstdata-ai/crawl-go
module github.com/nstdata-ai/crawl-go
Синхронное сканирование одной страницы
package main import ( "context" "fmt" "log" crawl "github.com/nstdata-ai/crawl-go" ) func main() { ctx := context.Background() client := crawl.NewClient("YOUR_API_TOKEN") res, err := client.SubmitScrapeTaskSync(ctx, &crawl.ScrapeRequestDto{ URL: "https://example.com/", Formats: []string{crawl.FormatMarkdown}, Timeout: 60000, OnlyMainContent: true, }) if err != nil { log.Fatal(err) } markdown, _ := res.Data.GetMarkdown(ctx) fmt.Println(markdown) }
Сканирование на уровне сайта
package main import ( "context" "fmt" "log" crawl "github.com/nstdata-ai/crawl-go" ) func main() { ctx := context.Background() client := crawl.NewClient("YOUR_API_TOKEN") submit, err := client.SubmitCrawlTask(ctx, &crawl.CrawlRequestDto{ URL: "https://example.com/", Formats: []string{crawl.FormatMarkdown, crawl.FormatHTML}, MaxDepth: 3, MaxPages: 50, IgnoreQuery: true, OnlyMainContent: true, }) if err != nil { log.Fatal(err) } fmt.Println(submit.Id) status, err := client.GetCrawlStatus(ctx, submit.Id) if err != nil { log.Fatal(err) } fmt.Println(status) }
Кто получает выгоду от Nstproxy Crawl?
Nstproxy Crawl предназначен для команд, которым нужны надежные, структурированные веб-данные без необходимости поддерживать сложную инфраструктуру скрапинга. Будь то создание AI-приложений, мониторинг конкурентов или сбор данных в большом масштабе, Crawl предоставляет веб-контент, готовый к LLM, через единый API.
-
Увеличение знаний AI-агента (RAG) — Автоматически преобразуйте корпоративную документацию, технические руководства и страницы продуктов в чистый Markdown и в реальном времени внедряйте содержимое в векторную базу данных. Nstproxy Crawl обрабатывает рендеринг JavaScript и очистку контента, чтобы конвейеры RAG получали структурированные, безшумные данные — а не сырое HTML, полное скриптов и разметки навигации.
-
Динамическое мониторинг цен и запасов — Регулярно просматривайте страницы продуктов конкурентов и извлекайте данные о ценах, спецификациях SKU, статусе запасов и промоакциях в структурированном формате JSON. Каждое выполнение отражает фактическую страницу, которую видит реальный пользователь — включая цены, отрисованные с помощью JavaScript — поэтому ваша ценовая стратегия основана на актуальных рыночных данных, а не на кэшированных снимках.
-
Мониторинг мнения о бренде и репутации — Масштабно собирайте контент с социальных платформ, форумов и сайтов отзывов и передавайте его в аналитические процессы по определению настроений. Crawling возвращает чистый текст, который можно напрямую подключить к этапу классификации LLM — без необходимости вручную удалять форматирование или писать пользовательские парсеры для каждого источника.
-
Генерация B2B-лидов — Автоматически извлекайте описания компаний, открытые вакансии, контактную информацию и область бизнеса с веб-сайтов целевых компаний. Создавайте структурированные списки потенциальных клиентов на основе общедоступных веб-данных без необходимости поддерживать стек парсинга для каждого доменного имени источника.
-
Отслеживание конкурентной разведки — Следите за веб-сайтами конкурентов на наличие обновлений функций, пресс-релизов, изменений цен и редизайна. Структурированный вывод из каждого выполнения парсинга упрощает сравнение контента за разные временные периоды и выявление значительных изменений для команд по продуктам и стратегии.
-
Анализ структуры страниц SEO — Масштабно просматривайте страницы конкурентов или собственных сайтов для извлечения тегов заголовков, метаописаний, структуры заголовков, контента тела и схем внутренних ссылок. Передавайте вывод напрямую в LLM для автоматизированного аудита SEO и рекомендаций по оптимизации.
-
Сбор академической и отраслевой информации — Извлекайте ключевые данные, метаданные авторов и структурированный контент из хранилищ научных статей, государственных публикаций и страниц отраслевых отчетов. Ускоряйте написание отчетов и обзоров литературы без необходимости вручную загружать и парсить каждый источник.
-
Поиск продуктов в электронной коммерции и анализ тенденций — Просматривайте списки продуктов на крупных торговых площадках, чтобы извлекать рейтинги, индикаторы продаж, ключевые слова отзывов и ценовые тренды. Предоставляйте командам по мерчендайзингу и операциям структурированные данные для выявления высокопотенциальных продуктов до их насыщения.
-
Мониторинг соблюдения норм и изменений в веб-контенте — Периодически сравнивайте структуру HTML и текстовый контент общедоступных страниц с предыдущими снимками. Выявляйте изменения условий обслуживания, политик конфиденциальности, уведомлений о соблюдении требований или раскрытия информации до того, как они повлияют на бизнес-операции.
-
Создание вертикального поискового индекса — Создавайте частные индексы поиска для специфических отраслей — здравоохранения, юриспруденции, финансов — просматривая веб-сайты конкретных секторов через API и синхронизируя обновления в реальном времени. Поддерживайте актуальность доменных поисковых систем без необходимости поддерживать отдельную инфраструктуру парсинга для каждого источника.
Как предоставить данные веба в реальном времени агентам ИИ и системам RAG с использованием Nstproxy Crawl
Помещение веб-контента в ИИ-пipeline состоит из двух частей: надежного получения страницы и передачи ее в формате, который может использовать дальнейшая система. Большинство команд решают первую часть с помощью парсера и обнаруживают вторую часть позже — когда сырой HTML, полный навигационных разметок, уведомлений о cookie и тегов скриптов, попадает на этап разбивки, который не предназначен для его очистки.
Nstproxy Crawl обрабатывает обе задачи. Следующие две схемы интеграции показывают, как он вписывается в самые распространенные рабочие процессы данных ИИ: как инструмент чтения веба в реальном времени для агентов ИИ и как уровень сбора и очистки в начале трубопровода RAG.
Интеграция Nstproxy Crawl с агентами ИИ
Агенты ИИ часто нуждаются в получении актуальной информации из интернета — с веб-сайтов компаний, новостных страниц, продуктовой документации, блогов, форумов и общедоступных источников данных. Nstproxy Crawl выступает как слой чтения веба для агента: агент предоставляет URL, Crawl получает страницу и возвращает чистый Markdown, HTML или структурированный вывод, и агент продолжает с обобщением, ответами на вопросы, сравнением или извлечением полей.
Как это работает:
- Агент получает вопрос пользователя или задачу.
- Агент определяет, какие URL необходимо получить.
- Агент вызывает Nstproxy Crawl для получения содержимого страницы.
- Crawl возвращает очищенный Markdown.
- Агент использует Markdown для обобщения, вопросов и ответов, структурного извлечения или создания отчетов.
Эта схема хорошо подходит для приложений ИИ, которые нуждаются в доступе к вебу в реальном времени. Три распространенных типа агентов, которые извлекают прямую пользу:
- Исследовательский агент — Автоматически читает веб-страницы, хранилища академических статей, новостные источники и отраслевые публикации для генерации исследований и сравнительных отчетов. Crawl обрабатывает страницы, отрисованные с помощью JavaScript, и очистку контента, так что агент получает структурированный ввод, а не сырой HTML.
- Агент по сбору информации о продажах — Обходит веб-сайты компаний, страницы вакансий, пресс-релизы и страницы продуктов, чтобы извлечь профили клиентов, бизнес-сигналы и потенциальных клиентов. Структурированный вывод в формате Markdown упрощает извлечение полей без необходимости использования пользовательских парсеров для каждого домена.
- Агент по мониторингу рынка — Непрерывно следит за веб-сайтами конкурентов, страницами цен, страницами анонсов и обновлениями рынка. Каждый запуск обхода возвращает последовательный структурированный вывод, что позволяет удобно обнаруживать значительные изменения между запусками и автоматически генерировать оповещения о трендах.
Интеграция Nstproxy Crawl с системами RAG
В RAG-пipeline веб-контент обычно проходит через сбор, очистку, деление на части, эмбеддинг и индексацию, прежде чем стать доступным для извлечения. Nstproxy Crawl обрабатывает первые два шага — сбор веба и очистку содержимого — преобразуя сложные веб-страницы в чистый Markdown и сокращая последующие затраты на текстовую обработку.
Типичный RAG-pipeline с Nstproxy Crawl:
- Используйте Nstproxy Crawl для получения целевых страниц или обхода всего сайта.
- Нормализуйте и очистите возвращенный Markdown.
- Разделите содержимое на части по заголовкам, абзацам или количеству токенов.
- Создайте эмбеддинги с помощью модели эмбеддинга.
- Запишите текст, векторы и метаданные в векторную базу данных.
- В момент запроса извлеките соответствующие части из векторной базы данных и передайте их LLM для генерации ответа.
Совместимые компоненты:
| Тип | Примеры |
|---|---|
| RAG фреймворки | LangChain, LlamaIndex |
| Модели эмбеддинга | OpenAI Embeddings, Cohere, открытые модели |
| Векторные базы данных | Pinecone, Weaviate, Qdrant, pgvector |
Этот интеграционный шаблон подходит для корпоративных баз знаний, систем вопросов и ответов по документам, помощников по продуктовым мануалам, исследовательских библиотек по отраслям и хранилищ конкурентной разведки — любых приложений, где источником знаний является открытый веб, а уровень извлечения требует чистого, структурированного ввода.
Как Nstproxy Crawl сравнивается
1. Nstproxy Crawl против традиционных скреперов
Традиционный внутренний скрепер дает команде полный контроль, но команда также должна управлять каждым уровнем: HTTP-клиенты, браузеры, ротация прокси, консистентность отпечатков, правила извлечения, очереди заданий, политики повторных попыток, хранение, ведение журнала, мониторинг и ответ на инциденты.
Nstproxy Crawl упаковывает эти возможности за стандартным API. Он лучше подходит, когда команде нужны консистентные веб-данные без превращения обслуживания краулеров в долгосрочный инфраструктурный проект. Внутренний скрепер все еще может иметь смысл, когда рабочий процесс требует специализированного низкоуровневого поведения, высоконастраиваемого парсинга или полного контроля над средой выполнения.
| Область | Традиционный скрепер | Nstproxy Crawl |
|---|---|---|
| Отрисовка JavaScript | Создание и управление браузерными работниками | Управляемо через запросы Crawl |
| Управление прокси | Поиск, ротация и мониторинг прокси | Интегрированная инфраструктура прокси Nstproxy |
| Отпечатки браузера | Реализация и поддержка профилей | Управляемый уровень отпечатков и браузеров |
| Очистка содержимого | Создание правил извлечения и конверсии | Markdown, HTML и структурированные выводы |
| Повторные попытки и очереди | Создание инфраструктуры задач | Автоматические повторные попытки и управляемое расписание |
| Большие результаты | Создание хранилища артефактов | Извлечение на основе ссылок |
| Обслуживание | Постоянная инженерия и операции | Централизовано за одним API |
2. Nstproxy Crawl против Firecrawl, Jina Reader и Tavily
Эти продукты решают различные задачи веб-данных. Firecrawl и Jina Reader обычно рассматриваются для преобразования веб-страниц в контент, удобный для LLM, в то время как Tavily чаще всего используется для ориентированного на ИИ веб-поиска и открытия. Они могут быть эффективными, когда основное требование — это легкое чтение страниц, конверсия в Markdown или поиск результатов.
Nstproxy Crawl позиционируется как более широкий уровень инфраструктуры обхода для производственных нагрузок, где надежный доступ к страницам так же важен, как и конверсия содержимого. Его отличия сосредоточены на комбинации исполнения с отпечатками браузера, отрисовке JavaScript, действиях браузера, ресурсах прокси Nstproxy, географическом таргетировании, асинхронном управлении задачами, обходе на уровне сайта и нескольких форматах артефактов.
Правильный выбор зависит от нагрузки:
- Выберите легкого читателя, когда страницы легко доступны и основное требование — это случайная конверсия URL в Markdown.
- Выберите сервис, ориентированный на поиск, когда нахождение релевантных страниц важнее, чем контроль над тем, как каждая страница визуализируется и собирается.
- Выберите Nstproxy Crawl, когда нагрузка включает сложные динамические сайты, региональный доступ, многократное коммерческое извлечение, высокую одновременность или операционные требования к повторным попыткам, прогрессу и хранению результатов. Наиболее полезной оценочной метрикой является стоимость за используемую страницу, а не только стоимость за запрос. Тестируйте представительные разрешенные URL-адреса и сравнивайте полноту контента, точность рендеринга, качество Markdown, задержку, процент успешных запросов, географическую согласованность, диагностическую видимость и затраты на текущее обслуживание.
Законное и Ответственное Использование
Nstproxy Crawl предназначен для законного сбора и обработки публичных веб-данных. Технический доступ не устанавливает автоматически законное право на сбор, хранение или использование контента.
Перед началом сканирования убедитесь, что цель, сбор данных и метод обработки соответствуют применимым законам, условиям веб-сайта, требованиям конфиденциальности, обязательствам по авторскому праву и внутренним политикам вашей организации. Не используйте сервис для обхода аутентификации, уклонения от платных стен или разрешений, получения закрытых данных или сбора регулируемой личной информации без действительной правовой основы.
Cookies и пользовательские заголовки могут содержать учетные данные или данные сессии. Храните их в безопасности, ограничивайте доступ, избегайте записи в журналы и храните только столько времени, сколько это необходимо. Используйте разумные скорости запросов, устанавливайте четкие границы сканирования, кэшируйте неизмененный контент и избегайте создания ненужной нагрузки на целевые веб-сайты.
Устранение Проблем с Запросами
Не используйте только статус HTTP, чтобы определить, была ли задача успешной. HTTP 200 означает, что API-запрос был обработан, но задача сканирования может по-прежнему вернуть success: false. Всегда проверяйте status, success, errorCode и errorMessage в теле ответа.
| Статус или ошибка | Значение | Рекомендуемое действие |
|---|---|---|
| 400 недопустимый запрос | Отсутствуют, неправильно оформлены или недопустимы параметры | Проверьте тело JSON, обязательные поля и типы полей |
| 402 недостаточный баланс | У аккаунта недостаточно средств | Добавьте кредит или используйте профинансированный аккаунт или команду |
| 403 недопустимый URL | URL недопустимый, слишком длинный, запрещенный или не может быть разрешен | Используйте действующий публичный HTTP/HTTPS URL и проверьте DNS |
| 404 задача не найдена | ID задачи или сканирования неверен или недоступен | Проверьте ID и убедитесь, что учетные данные соответствуют владельцу задачи |
| 429 превышен лимит запросов | Скорость запросов выше лимита аккаунта | Уменьшите скорость запросов и повторите с экспоненциальной задержкой |
| 429 достигнут лимит конкурентности | Запущено слишком много задач | Подождите завершения активных заданий перед отправкой новых |
| 503 сервис недоступен | Задача, хранилище, выставление счета или сервис на потоке временно недоступны | Повторите позже с ограниченной экспоненциальной задержкой |
| 504 тайм-аут синхронизации | Синхронный запрос превысил окно ожидания | Используйте асинхронную отправку и опрашивайте о результате |
| тайм-аут | Выполнение страницы превысило установленный тайм-аут | Упростите действия браузера, отрегулируйте тайм-аут или попробуйте позже |
| parse_error | Страница не могла быть разобрана | Попробуйте HTML или необработанный вывод, отрегулируйте селекторы и проверьте доступность |
| access_denied | Цель отклонила или заблокировала задачу по политике | Убедитесь, что цель разрешена и используйте другой авторизованный источник |
Для устранения неполадок в производстве запишите ID запроса, ID задачи, URL, время отправки, форматы выходных данных, тайм-аут, настройки рендеринга и неприватные параметры запроса. Никогда не записывайте API-ключи, куки аутентификации или секретные заголовки.
При получении 429 учитывайте Retry-After, если он указан, и используйте экспоненциальную задержку с вариацией — например, постепенно ожидайте около 1, 2, 4 и 8 секунд. Не отправляйте тот же запрос с высокой частотой сразу.
Часто Задаваемые Вопросы (FAQ)
Q1. Что такое Nstproxy Crawl? Nstproxy Crawl — это API для веб-сканирования на основе ИИ, который преобразует публичные веб-страницы в чистые, структурированные выходные данные, такие как Markdown, HTML, необработанные данные, скриншоты, PDF-файлы и ссылки. Он управляет рендерингом, прокси-серверами, отпечатками, извлечением информации, повторами, планированием задач и извлечением результатов.
Q2. Чем Nstproxy Crawl отличается от обычного HTTP-запроса? Обычный HTTP-клиент, как правило, получает первоначальный ответ от сервера. Nstproxy Crawl может выполнять JavaScript, ожидать динамического контента, выполнять действия браузера, маршрутизировать трафик через прокси, очищать контент страницы, преобразовывать его в Markdown и управлять состоянием асинхронной задачи.
Q3. Поддерживает ли Nstproxy Crawl страницы, отрисованные с помощью JavaScript? Да. Он может загрузить страницу в среде браузера, ждать рендеринга или указанного селектора, выполнять настроенные действия браузера и извлекать окончательное состояние страницы.
Q4. Может ли Nstproxy Crawl обрабатывать весь веб-сайт?
Да. Сканирование на уровне сайта начинается с входного URL и обнаруживает внутренние страницы. Используйте maxDepth, maxPages, правила включения, правила исключения и обработку запросов, чтобы удерживать сканирование в рамках намеченного объема.
Q5. Подходит ли Nstproxy Crawl для RAG? Да. Его выходные данные в формате Markdown предназначены для рабочих процессов ИИ и могут быть очищены, разбиты на части, встроены и записаны в векторную базу данных как часть конвейера загрузки RAG.
Q6. Поддерживает ли Nstproxy Crawl скриншоты и PDF-файлы? Да. Оба формата включены в сервис краулинга. Большие файлы могут быть возвращены через токены ссылок и извлечены через конечную точку хранения.
Q7. Поддерживает ли Nstproxy Crawl файлы cookie и настраиваемые заголовки? Да. Запросы могут включать файлы cookie для авторизованного доступа на основе сессий и настраиваемые заголовки для языка, User-Agent, бизнес-идентификаторов или других требований запроса. Рассматривайте эти значения как учетные данные, если они содержат чувствительную информацию.
Q8. Предоставляет ли Nstproxy Crawl API массовых URL или вебхуки? В настоящее время Nstproxy Crawl не предоставляет специализированную конечную точку для массовых URL или общедоступный вебхук. Приложения могут отправлять несколько асинхронных задач на страницы с контролируемой параллельностью и получать результаты, опрашивая конечные точки статуса задач. Краулинг на уровне сайта может быть использован для связанных страниц внутри веб-сайта.
Q9. Сколько стоит Nstproxy Crawl? Цены по принципу "платите по мере использования" начинаются с $1.20 за 1,000 запросов. Новые пользователи получают $1 в виде пробного кредита после подачи заявки на пробный период. Включены рендеринг JavaScript, извлечение Markdown, PDF и скриншоты, в то время как использование прокси выставляется отдельно.
Q10. Как я могу повысить уровень успеха краулинга? Включите рендеринг JavaScript для динамических страниц, подождите надежный селектор контента, используйте подходящие файлы cookie или заголовки для авторизованных сессий, выберите подходящий регион прокси, ограничьте краулинг сайта, уменьшите частоту запросов и используйте асинхронный режим для медленных или больших задач.
Заключение: Создайте слой веб-данных один раз
Если вы создаете AI-агента, RAG-проводку, инструмент для рыночной разведки или любую систему, зависящую от чтения живого веба, слой скрапера не должен быть той частью, за которой вы ухаживаете. Nstproxy Crawl превращает этот слой в один надежный API-вызов — включая рендеринг, обработку антиботов, повторные попытки и очистку.
Начните с быстрого старта выше и протестируйте его на реальном URL из вашего рабочего процесса. Если вам нужна большая параллельность, более продвинутые стратегии краулинга или поддержка на уровне предприятия, обратитесь в команду — мы рады обсудить вашу конкретную настройку.




