← Обзор / ai-search / configuration / data-source / website
Селекторы контента
Селекторы контента позволяют определять, какие части просканированной страницы индексируются. Каждая запись связывает glob-шаблон URL-адреса с CSS-селектором. Когда URL-адрес страницы соответствует glob-шаблону, извлекаются и преобразуются в Markdown для индексирования только элементы, соответствующие связанному CSS-селектору, и их потомки.
Список упорядочен, и применяется первый совпавший путь. Если URL-адрес страницы соответствует нескольким glob-шаблонам, применяется селектор только из первого совпадения. Располагайте записи от наиболее специфичных к наименее специфичным.
Поведение по умолчанию
Без селекторов содержимого AI Search применяет конвейер обработки по умолчанию, который удаляет такие элементы, как <header>, <footer>, а также <head> перед преобразованием оставшегося содержимого в Markdown. Подробнее о том, как обрабатывается HTML, см. Как обрабатывается HTML.
Настройка в панели управления
-
Перейдите в AI Search ↗ странице панели управления Cloudflare.
Перейдите в AI Search ↗ -
Выберите свой экземпляр AI Search или выберите Создание и создайте новый с источником данных типа Сайт источник данных.
-
В настройках источника данных найдите Селекторы контента раздел.
-
Выберите Добавить селектор.
-
В Путь поле введите glob-шаблон для сопоставления URL страниц. Например,
**/blog/**. -
В Селектор поле введите CSS-селектор для извлечения содержимого с подходящих страниц. Например,
article .post-body. -
Чтобы добавить больше записей, выберите Добавить селектор ещё раз. Записи проверяются по порядку сверху вниз.
Настройка через 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 пропускает первый шаблон и соответствует второму.
Взаимодействие с другими функциями
- Фильтрация путей: Фильтрация путей имеет приоритет над селекторами содержимого. Страницы, исключённые фильтрами путей, никогда не сканируются, поэтому селекторы содержимого на них не распространяются.
- Режим отрисовки: Селекторы содержимого применяются к HTML, который получает AI Search. Для сайтов, отрисовывающих содержимое с помощью JavaScript, используйте Rendered sites режиме, чтобы селекторы могли обращаться к полностью отрисованному DOM.
- Автоматическая переиндексация: Обновление селекторов содержимого запускает новое задание синхронизации немедленно, поэтому изменения применяются ко всем проиндексированным страницам.
Лимиты
См. Сайт для ограничений, которые применяются к селекторам содержимого.