INTEGRITY Документация

Селекторы контента

Селекторы контента позволяют определять, какие части просканированной страницы индексируются. Каждая запись связывает glob-шаблон URL-адреса с CSS-селектором. Когда URL-адрес страницы соответствует glob-шаблону, извлекаются и преобразуются в Markdown для индексирования только элементы, соответствующие связанному CSS-селектору, и их потомки.

Список упорядочен, и применяется первый совпавший путь. Если URL-адрес страницы соответствует нескольким glob-шаблонам, применяется селектор только из первого совпадения. Располагайте записи от наиболее специфичных к наименее специфичным.

Поведение по умолчанию

Без селекторов содержимого AI Search применяет конвейер обработки по умолчанию, который удаляет такие элементы, как <header>, <footer>, а также <head> перед преобразованием оставшегося содержимого в Markdown. Подробнее о том, как обрабатывается HTML, см. Как обрабатывается HTML.

Настройка в панели управления

  1. Перейдите в AI Search ↗ странице панели управления Cloudflare.

    Перейдите в AI Search ↗
  2. Выберите свой экземпляр AI Search или выберите Создание и создайте новый с источником данных типа Сайт источник данных.

  3. В настройках источника данных найдите Селекторы контента раздел.

  4. Выберите Добавить селектор.

  5. В Путь поле введите glob-шаблон для сопоставления URL страниц. Например, **/blog/**.

  6. В Селектор поле введите CSS-селектор для извлечения содержимого с подходящих страниц. Например, article .post-body.

  7. Чтобы добавить больше записей, выберите Добавить селектор ещё раз. Записи проверяются по порядку сверху вниз.

Настройка через API

Селекторы контента настраиваются в source_params.web_crawler.parse_options.content_selector поле при создании или обновлении экземпляра AI Search. Поле принимает массив объектов, каждый из которых содержит path и selector свойство.

curl -X POST "https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/ai-search/instances" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "my-ai-search",
    "source": "https://example.com",
    "type": "web-crawler",
    "source_params": {
      "web_crawler": {
        "parse_options": {
          "content_selector": [
            {
              "path": "**/blog/**",
              "selector": "article .post-body"
            },
            {
              "path": "**/docs/**",
              "selector": "main .content"
            }
          ]
        }
      }
    }
  }'
Поле Тип Описание
path string Glob-шаблон для сопоставления с полным URL страницы. Использует тот же синтаксис glob, что и фильтрация по пути: * совпадает в пределах сегмента, ** пересекает границы каталогов. Максимум 200 символов.
selector string CSS-селектор для извлечения содержимого со страниц, соответствующих шаблону пути. Поддерживаются стандартные CSS-селекторы, включая селекторы элементов, классов, идентификаторов и атрибутов. Максимум 200 символов.

Примеры

Извлекать основное содержимое со страниц блога

Чтобы индексировать только текст статьи на страницах блога и игнорировать навигацию, боковые панели и футеры:

Путь Селектор
**/blog/** article .post-body

Целевой контент документации

Чтобы индексировать основную область контента на сайте документации:

Путь Селектор
**/docs/** main .content

Разные селекторы для разных секций

Вы можете определить несколько записей, чтобы применять разные селекторы к разным частям сайта. Приоритет имеет первый совпадающий путь, поэтому более специфичные шаблоны следует размещать в начале:

Путь Селектор
**/blog/releases/** .release-notes
**/blog/** article .post-body
**/docs/** main .content

В этом примере страница по адресу https://example.com/blog/releases/v2 соответствует первому шаблону и использует .release-notes селектор. Страница по адресу https://example.com/blog/my-post пропускает первый шаблон и соответствует второму.

Взаимодействие с другими функциями

Лимиты

См. Сайт для ограничений, которые применяются к селекторам содержимого.