TL;DR
- Извлечение данных о продукте успешно происходит только тогда, когда цена, валюта, вариант и доступность относятся к одному и тому же предложению.
- Запись продукта действительна только тогда, когда цена, валюта, доступность и вариант относятся к одному и тому же предложению.
- JSON-LD продукта является полезным кандидатом на источник, но сравните его с отрисованным выбранным предложением.
- Используйте ограниченное открытие для просмотренной категории и исключите страницы категорий из записей продуктов.
- Nstdata Crawl обрабатывает рендеринг JavaScript и прокси-рутинг в управляемых запросах; в его документации перечислены шесть категорий вывода: Markdown, HTML, сырые данные, PDF, скриншоты и ссылки.
Что считается структурированными данными о продукте?
Структурированные данные о продукте — это типизированная запись для конкретного продукта или варианта: название, идентификатор, выбранный вариант, цена, валюта, доступность и URL-адрес источника. Страницы электронной торговли часто показывают несколько предложений, региональные цены, подписки, пакеты или выбранные варианты на одном экране. Обертка страницы к JSON не разрешает, какое значение принадлежит какому предложению. Определите идентичность записи и доказательства для каждого поля перед масштабированием.
Nstdata Crawl может превратить URL или ограниченный набор связанных страниц в материал для AI-агента, индекс RAG или конвейера данных. Используйте собственные правила полей и проверки приемлемости для конкретного результата: получите разрешенные страницы продуктов и сопоставьте видимые или встроенные детали в проверенные записи. Полное руководство по краулингу сайта Nstdata объясняет опцию на уровне сайта.
Для более узкой задачи, рассматриваемой здесь, руководство Nstdata website-to-JSON дает полезный контекст для выбора первой представительской страницы.
Что вам нужно перед началом?
Выберите общедоступную или авторизованную страницу продукта и запишите выбранный вариант, ожидаемый SKU, текст цены, валюту, доступность и контекст последнего обновления. Определите, предлагает ли сайт официальную ленту или API; используйте это, где это уместно. Установите правила для цены распродажи против цены списка, меток "недоступно", нескольких продавцов и региональной валюты. Держите чувствительные данные о клиентах или учетных записях вне рабочей последовательности.
Документация Crawl API использует https://api.nstdata.io, заголовок x-api-key и Content-Type: application/json. Подготовьте эти поля перед выполнением метода:
| Поле | Что предоставить |
|---|---|
url | Один разрешенный HTTPS-URL страницы или сайта |
formats | Запрашиваемые форматы вывода, такие как ["markdown"] или ["html","screenshot"] |
onlyMainContent | true только когда выбор главного содержания соответствует задаче |
maxDepth, maxPages | Явные пределы для работы по всему сайту |
includeUrls, excludeUrls | Шаблоны URL, которые удерживают открытие в рамках |
timeout | Тайм-аут задачи в миллисекундах, когда по умолчанию это неподходяще |
Управляемый запрос по умолчанию не имеет отдельных полей прокси Host, Port, Username, Password или Protocol. Проверьте текущую страницу ценообразования на Crawl для ограничения аккаунтов и сборов перед запуском крупной задачи.
Просмотрите политику доступа и область действия цели. Протокол исключения роботов определяет, как краулеры читают правила для роботов; он не предоставляет прав на использование контента. Держите учетные данные и частные данные вне примеров и диагностических журналов.
Руководство Nstdata по извлечению данных о продуктах электронной торговли является дополнением для определения проверок приемлемости, прежде чем автоматизировать рабочий процесс.
Как страницы продуктов раскрывают структурированные данные?
Nstdata Crawl может рендерить страницы продуктов с большим количеством JavaScript, получать Markdown или HTML и краулить ограниченный раздел категории. Его страница продукта рекламирует JSON-выводы, в то время как видимый пример API не указывает произвольную схему продукта. Используйте Crawl как уровень извлечения и очистки, затем анализируйте опубликованные структурированные данные о продуктах или проверенные элементы DOM и проверяйте их на соответствие видимой странице. Управляемый прокси-рутинг встроен; стандартный запрос не требует отдельных учетных данных прокси.
Для известного URL одностраничный скрапинг получает один результат. Для раздела сайта POST /api/v1/crawl рекурсивно обнаруживает связанные страницы в пределах заданной глубины, количества страниц и URL-правил. Документация документация перечисляет Markdown, HTML, сырые данные, PDF, скриншоты и ссылки как шесть категорий вывода; страница продукта также предлагает JSON, но специализированная схема JSON все еще требует явного сопоставления полей. Держите каждую принятую запись привязанной к ее URL источника и возвращенным метаданным.
Протестируйте представительскую страницу с большим количеством JavaScript перед масштабированием. Отрендеренное состояние может зависеть от времени, региона, согласия или входа в систему. Сравните возвращенный HTML или скриншот с ожидаемым состоянием страницы; если они отличаются, отрегулируйте только задокументированное рендеринг и управление ожиданиями.
Как извлечь данные о продукте со страниц электронной коммерции?
Сравните одно отрендеренное предложение с его встроенной разметкой, затем автоматизируйте известные URL-адреса продуктов или ограниченный раздел каталога. Сопоставляйте поля только после того, как выбранный вариант и регион станут ясны.
Метод 1: Проверьте один продукт в Playground
Лучше всего подходит для установления того, что страница фактически отображает.
Шаг 1: Откройте представительный продукт
Используйте Панель управления → Игровая площадка с авторизованным URL адресом продукта. [Скриншот: URL, рендеринг и форматы вывода.]
Шаг 2: Запросите HTML и визуальные доказательства
Выберите HTML и скриншот в качестве выходных данных. Если цена или наличие загружаются после JavaScript, используйте задокументированное ожидание готовности, видимое в Игровой площадке.
Шаг 3: Сравните варианты
Проверьте выбранный вариант на скриншоте с любым встроенным Product JSON-LD и видимой ценой. Не смешивайте имя родительского продукта с предложением другого варианта.
Метод 2: Получите страницу через API
Лучше всего подходит для повторяемого сбора с известных URL-адресов продуктов.
Шаг 1: Надежно храните ключ
Храните NSTDATA_API_TOKEN на сервере и отправляйте его как x-api-key.
Шаг 2: Запросите страницу
Используйте задокументированную форму быстрого старта для HTML и Markdown ниже. Проверьте текущий сгенерированный маршрут Игровой площадки, так как документы маркируют другие маршруты сбора не последовательно.
Установите NSTDATA_API_TOKEN в вашей оболочке из вашего аккаунта Nstdata, затем выполните задокументированный запрос быстрого старта. Общественная документация не последовательно маркирует некоторые другие синхронные и асинхронные маршруты; сравните сгенерированный запрос вашей учетной записи Игровой площадки перед использованием в производстве.
curl --output crawl-response.json --request POST "https://api.nstdata.io/api/v1/crawl/scrape/submit-sync" \ --header "x-api-key: ${NSTDATA_API_TOKEN}" \ --header "Content-Type: application/json" \ --data '{"url":"https://example.com/product/sample","formats":["html","markdown"]}'
Ответ сохраняется в crawl-response.json. Проверьте вложенные поля data.success, data.status и data.data.metadata.statusCode перед использованием любых возвращенных данных.
Шаг 3: Сопоставьте поля
Парсите встроенную разметку продукта, когда это доступно, и сравните ее значения с видимым содержимым. Если очищенный HTML не содержит JSON-LD скриптов, проверьте представление сырых данных в вашем аккаунте, прежде чем предполагать, что структурированная разметка отсутствует.
Если страница публикует Product JSON-LD, сохраните сырых HTML как page.html и проверьте его объявленные предложения перед сопоставлением полей. Следующий код извлекает узлы продукта без предположения, что каждый магазин использует одну и ту же схему предложений:
from bs4 import BeautifulSoup import json soup = BeautifulSoup(open("page.html", encoding="utf-8").read(), "html.parser") nodes = [] for script in soup.select('script[type="application/ld+json"]'): try: data = json.loads(script.string or script.get_text()) except json.JSONDecodeError: continue stack = data if isinstance(data, list) else [data] while stack: item = stack.pop() if isinstance(item, dict): if item.get("@type") == "Product" or "Product" in (item.get("@type") or []): nodes.append(item) graph = item.get("@graph", []) stack.extend(graph if isinstance(graph, list) else [graph]) if not nodes: raise ValueError("Нет Product JSON-LD; проверьте отрендеренный DOM") for product in nodes: print(json.dumps({"name": product.get("name"), "sku": product.get("sku"), "offers": product.get("offers")}, ensure_ascii=False, indent=2))
Установите Beautiful Soup с помощью python3 -m pip install beautifulsoup4. Рассматривайте каждое напечатанное предложение как кандидата: сравните вариант, цену, валюту и доступность с отрендеренной страницей перед сохранением записи о продукте.
Метод 3: Сбор определенного раздела каталога
Лучше всего подходит для проверенной категории или короткого набора связанных продуктов.
Шаг 1: Установите область
Начните с URL-адреса категории и установите небольшой maxDepth, maxPages, а также правила включения/исключения, чтобы избежать путей к корзине, поиску и аккаунту.
Шаг 2: Соберите записи страниц
Отправьте POST /api/v1/crawl, опросите статус и получите все страницы. Явно идентифицируйте страницы с деталями продукта; страницы категорий не являются записями о продуктах.
Для работы сайта замените пример хоста и пути на вашу одобренную область, затем отправьте ограниченный запрос:
curl --output crawl-submit.json --request POST "https://api.nstdata.io/api/v1/crawl" \ --header "x-api-key: ${NSTDATA_API_TOKEN}" \ --header "Content-Type: application/json" \ --data '{"url":"https://example.com/docs/","formats":["html"],"maxDepth":2,"maxPages":10,"includeUrls":["*example.com/docs/*"],"excludeUrls":["*example.com/admin/*"],"ignoreQuery":true}'
Скопируйте data.id из crawl-submit.json в качестве вашего ID сбора.
Шаг 3: Проверьте предложения
Удалите дубликаты по стабильным ID продуктов и вариантов, нормализуйте валюту, не меняя смысла, и отклоните страницы, где выбранное предложение не может быть связано с извлеченными значениями.
Метод 4: Используйте опубликованный JSON-LD продукта со статической страницы
Лучший вариант для публичных страниц продуктов, чьи оригинальные HTML уже содержат полный разметку продукта.
Шаг 1: Сохраните HTML продукта
Сохраните одну авторизованную страницу продукта как page.html и запишите выбранный вариант, отображаемую цену, валюту и состояние на складе.
Шаг 2: Извлеките кандидаты на предложения
Запустите парсер JSON-LD продукта, показанный в Методе 2. Если он не находит узел продукта, не создавайте поля; используйте визуальное представление или официальный поток данных о продукте, если он доступен.
Шаг 3: Проверьте выбранное предложение
Выберите предложение, соответствующее выбранному варианту, и сравните каждое сохраненное значение с видимой страницей продукта. Статическая разметка может быть устаревшей или упустить цены, специфичные для региона; используйте визуализированную страницу Crawl и скриншот, когда это различие имеет значение.
Как вы проверяете вывод?
Действительная запись указывает название продукта или варианта, сохраняет исходный URL и связывает цену, валюту и доступность с тем же видимым предложением. Сохраните оригинальный текст цены рядом с нормализованными значениями, чтобы рецензент мог выявить ошибки в локализации. Документация Google по структурированным данным о продукте отличает фрагменты продуктов, списки продавцов и разметку вариантов. Руководство Nstdata по преобразованию веб-сайтов в JSON объясняет, почему одна только проверка схемы не может доказать, что извлеченное значение истинно.
Руководство Nstdata по мониторингу цен связывает эту проверку на уровне страницы с последующим ИИ или рабочим процессом данных.
Запишите исходный URL, время отправки, запрашиваемые форматы, не секретные параметры, идентификатор задачи, когда он доступен, статус возвращаемой страницы и причину, по которой каждая запись прошла или не прошла проверку. Проверяйте содержимое, а также оболочку API. Если ответ содержит markdownRef, htmlRef, rawDataRef, screenshotRef или pdfRef, получите этот токен с помощью GET /api/v1/crawl/storage/read?st={ref}.
Для этого рабочего процесса проконсультируйтесь с структурированными данными Google о продукте при реализации парсера на последующих этапах или проверки принятия в формате.
Передавая извлеченный текст агенту, рассматривайте инструкции страницы как ненадежный исходный материал. Руководство OWASP по инъекциям запросов объясняет риск. Сохраняйте исходные URL, чтобы вывод ИИ можно было проверить.
Почему записи о продуктах могут содержать неправильное предложение?
Извлечение данных о продуктах может потерпеть неудачу, потому что страница показывает несколько предложений или варианты по умолчанию. Используйте таблицу симптомов, чтобы определить уровень сбоя, прежде чем изменять ограничения или повторно пытаться.
| Симптом | Вероятная причина | Следующее действие |
|---|---|---|
| Неверная цена для выбранного варианта | Страница показывает несколько предложений или варианты по умолчанию. | Зафиксируйте выбранный вариант и сравните контекст видимого предложения. |
| Нет JSON-LD в очищенном HTML | Очищение может упустить элементы скрипта. | Проверьте исходные данные страницы или видимый DOM перед изменением маппера. |
| Категории страниц отображаются как продукты | Обнаружение включает страницы со списками. | Классифицируйте шаблоны страниц и оставьте только проверенные страницы с деталями. |
Документация Nstdata перечисляет ошибки на уровне задачи, такие как access_denied, timeout, parse_error и internal_error. Внешний HTTP 200 все еще может сопровождать неудавшуюся задачу. Проверьте success, status, errorCode и errorMessage внутри ответа, если они присутствуют. Повторяйте только временные сбои на сайтах, к которым вы можете получить доступ.
Какой метод лучше всего подходит?
Используйте Playground для просмотра варианта, API для известных URL продуктов или ограниченный обход сайта для проверенной секции каталога. Используйте локальный парсинг JSON-LD на статической странице только тогда, когда её предложения соответствуют выбранному варианту. Обзор обхода сайта Nstdata дает больше информации о маршруте сайта.
Что делать после первой успешной работы?
Сохраните одобренную конфигурацию и одну запись вывода, подтвержденную источником, затем повторите процесс с небольшим набором различных шаблонов страниц. Увеличивайте масштаб только после того, как эти записи пройдут те же проверки принятия.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ: Что ещё вам следует знать?
В: Производит ли Crawl готовую схему продукта?
Публичная документация API подтверждает выводы страниц, но не определяет четко извлечение произвольных полей продукта. Картируйте и проверяйте поля в вашем приложении.
В: Может ли JSON-LD продукта заменить видимые проверки?
Нет. Структурированная разметка может быть устаревшей или относиться к другой вариации; сравните её с отрисованным предложением.
В: Должен ли я хранить цены на продукты в виде чисел с плавающей запятой?
Предпочитайте значения с безопасным десятичным форматом или оригинальный текст плюс валюту; избегайте тихого округления и предположений о локали.
В: Требует ли извлечение данных о продукте отдельной настройки прокси с Nstdata Crawl?
Стандартный управляемый запрос Crawl не требует отдельного прокси Host, Port, Username, Password или Protocol. Подтвердите любой выбор опционального пользовательского прокси и сопутствующие сборы за использование в вашем аккаунте.
В: Подтверждает ли HTTP 200, что результат извлечения данных о продукте пригоден для использования?
Нет. Проверьте результат вложенной задачи, статус страницы, ожидаемые поля и достоверность содержимого перед использованием в AI или рабочем процессе данных.





