Перейти к основному содержимому

Parse HTML API

Извлечение структурированных данных из HTML-кода или URL с указанием нужных полей.

Процесс

  1. Отправить HTML или URL — POST /parse_html/
  2. Запросить результат — GET /parse_html/{id}/

Отправить HTML на парсинг

POST /api/v1/parse_html/

Отправьте сырой HTML-контент или URL вместе со списком полей для извлечения.

Аутентификация

Требуется API-ключ (заголовок X-Api-Key).

Тело запроса

ПолеТипОбязательноеОписание
htmlstringНетСырой HTML-контент для парсинга
urlstringНетURL страницы для парсинга
fieldsstring[]НетСписок полей для извлечения

Укажите либо html, либо url.

{
"url": "https://example.com/page",
"fields": ["title", "price", "description"]
}

Ответ

200 OK

Возвращает идентификатор задачи для последующего опроса результатов.


Получить результат парсинга

GET /api/v1/parse_html/{id}/

Получить результат парсинга для ранее отправленной задачи.

Аутентификация

Публичный эндпойнт — аутентификация не требуется.

Параметры пути

ПараметрТипОписание
idstringИдентификатор задачи, возвращённый POST-запросом

Ответ

200 OK

Пример

import time
import requests

API_KEY = "ВАШ_API_КЛЮЧ"
BASE_URL = "https://detect.expert/api/v1"
headers = {"X-Api-Key": API_KEY}

# Отправка HTML на парсинг
payload = {
"url": "https://example.com/page",
"fields": ["title", "price", "description"]
}
response = requests.post(f"{BASE_URL}/parse_html/", json=payload, headers=headers)
task = response.json()
task_id = task["id"]

# Ожидание результата
while True:
result = requests.get(f"{BASE_URL}/parse_html/{task_id}/")
data = result.json()
if data.get("status") == "completed":
print(data)
break
time.sleep(3)