> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yahont.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Web

> Индексирование публичных или внутренних веб-страниц с помощью обхода

Коннектор Web читает веб-страницы и индексирует их текст. Он открывает каждую страницу в настоящем браузере,
поэтому страницы, формирующие содержимое с помощью JavaScript, индексируются так же, как статические.

Коннектор нигде не входит в систему. Он читает только то, что доступно посетителю без входа.

## Как это работает

| Содержимое | Поведение |
| - | - |
| Страницы | Один документ на страницу. Yahont удаляет навигацию, верхние и нижние колонтитулы и сохраняет заголовок страницы как название документа. |
| PDF | Связанный PDF скачивается, и из него извлекается текст. Документ называется по последнему сегменту его URL. |
| Ссылки | В режиме **recursive** Yahont переходит по ссылкам, найденным на каждой отрисованной странице, и продолжает, пока не закончатся страницы в области обхода. |
| Область | Только страницы того же сайта и по тому же пути, что и базовый URL. См. [Область обхода](#crawl-scope). |
| Дубликаты | Страницы с тем же заголовком и текстом, что у уже проиндексированной в этом запуске, пропускаются. URL с перенаправлением сохраняется по адресу, на котором он заканчивается. |
| Права | **Auto Sync Permissions** для этого коннектора недоступна. У проиндексированной страницы нет списка доступа по пользователям, поэтому [тип доступа](/admins/connectors/overview#document-access-controls) может быть только **Public** или **Private**. |

Каждое обновление заново обходит весь сайт; инкрементального режима нет.
Yahont намеренно игнорирует заголовок `Last-Modified`,
потому что CDN и серверные источники продвигают его при каждой загрузке, даже если страница не менялась.
Вместо этого он сравнивает текст каждой загруженной страницы, поэтому неизменённая страница стоит загрузки,
но не переиндексируется. Так как полный обход затратен, этот коннектор обновляется раз в 24 часа, а не каждые 10 минут.

## Перед началом

Вам понадобятся:

* URL, до которого может дотянуться сам сервер Yahont
* Страницы, не требующие входа
* Аккаунт администратора Yahont

> [!NOTE]
>
> Коннектор не может входить в систему, отправлять cookie или отвечать на форму входа.
> Если нужное содержимое находится за аутентификацией, индексируйте систему, где оно хранится,
> её собственным коннектором, а не обходите её веб-интерфейс.

## Настройка Yahont

**1. Откройте коннектор Web**

В Yahont откройте **Панель администратора → Добавить коннектор** и выберите **Web**.

**2. Назовите коннектор и введите базовый URL**

Задайте коннектору понятное **Connector Name**. В **Base URL** введите адрес, с которого начать,
например `https://docs.yahont.ai/`. Если не указать схему, Yahont добавит `https://`.

**3. Выберите метод сканирования**

Выберите, как Yahont находит страницы:

* **recursive**: начать с базового URL и переходить по каждой ссылке в области обхода.
  Используйте для всего сайта или раздела.
* **single**: индексировать только базовый URL и ни по чему не переходить.
* **sitemap**: прочитать `sitemap.xml` и проиндексировать каждый указанный в нём URL. Если указанный адрес не является
  картой сайта, Yahont ищет её на этом сайте.

![Форма коннектора Web в Yahont с базовым URL и методом сканирования recursive](https://mintcdn.com/yahont-ai/gQVGDVoirOMFHw3D/assets/admins/connectors/web/WebConnectorForm.png?fit=max\&auto=format\&n=gQVGDVoirOMFHw3D\&q=85\&s=b96798e3a35ef1bf422996361c15f42f)

**4. Выберите тип доступа**

**Public** делает проиндексированные страницы видимыми каждому пользователю Yahont.
**Private** ограничивает коннектор выбранными группами пользователей Yahont и является функцией Enterprise Edition:
группы пользователей в Yahont CE недоступны.

О значении каждого типа доступа и о том, какие коннекторы поддерживают синхронизацию прав, см.
в разделе [Управление доступом к документам](/admins/connectors/overview#document-access-controls).

**5. Подключите и проверьте**

Нажмите **Create Connector**. Затем откройте **Панель администратора → Существующие коннекторы**,
выберите коннектор и убедитесь, что первая попытка индексации завершилась с ожидаемым числом страниц.

> [!NOTE]
>
> При **single** Yahont загружает страницу во время сохранения коннектора,
> поэтому неверный адрес или заблокированная страница сразу сообщаются.
> При **recursive** и **sitemap** при сохранении проверяется только сам адрес.
> Всё остальное проявляется при первой попытке индексации.

### Расширенные настройки

| Настройка | По умолчанию | Назначение |
| - | - | - |
| Scroll before scraping | off | Прокручивать до конца каждой страницы перед чтением, до 20 раз, останавливаясь, когда страница перестаёт расти. Включите для страниц, которые подгружают содержимое при прокрутке. |
| URL Rewrites | пусто | Заменять начало адреса каждого документа перед сохранением. См. [Переписывание URL](#url-rewrites). |

Выберите **Advanced Options** в форме коннектора, чтобы получить доступ к обеим:

![Расширенные параметры коннектора Web: Scroll before scraping и URL Rewrites](https://mintcdn.com/yahont-ai/gQVGDVoirOMFHw3D/assets/admins/connectors/web/WebConnectorAdvanced.png?fit=max\&auto=format\&n=gQVGDVoirOMFHw3D\&q=85\&s=2f7698157ab4351149bca11d19dfa4cb)

## Область обхода

В режиме **recursive** Yahont переходит по ссылке, только если она остаётся на том же сайте **и** по тому же пути,
что и базовый URL. Начальный `www.` при сравнении сайтов игнорируется.

| Базовый URL | Индексируется | Не индексируется |
| - | - | - |
| `https://example.com/` | всё на `example.com` | `https://docs.example.com/`, любой другой сайт |
| `https://example.com/docs` | `/docs`, `/docs/setup`, `/docs/api/auth` | `/blog`, `/documentation` |

Это самая частая причина, по которой рекурсивный обход индексирует меньше страниц, чем ожидалось. Сайту,
разделы которого находятся на отдельных поддоменах, нужен один коннектор на каждый поддомен. Сайту,
страницы которого доступны только через поле поиска и никогда не связаны ссылками, нужен метод **sitemap**.

## Переписывание URL

Переписывание заменяет начало сохраняемого адреса документа.
Yahont по-прежнему загружает исходный адрес — меняется только ссылка, сохранённая в документе, то есть ссылка,
по которой пользователь переходит из цитаты.

Используйте, когда Yahont обращается к сайту по адресу, которым не пользуются ваши пользователи,
например через внутренний шлюз:

| Префикс исходного URL | Префикс замены |
| - | - |
| `http://wiki.internal:8080/` | `https://wiki.example.com/` |

Побеждает первое подходящее правило. Если две просканированные страницы переписываются в один адрес,
Yahont сохраняет первую и пропускает вторую, иначе они перезаписали бы друг друга в индексе.

## Обход внутреннего сайта

Только для самостоятельного размещения. По умолчанию Yahont отказывается обходить частные или внутренние адреса,
а коннектор, направленный на такой адрес, завершается с ошибкой `Non-global IP address detected`.

Чтобы это разрешить,
администратор устанавливает **Защиту от SSRF** в **Проверять запросы LLM** или ниже на странице [Безопасность и усиление
защиты](/admins/advanced_configs/security_hardening). На этом уровне коннекторы, настроенные администратором,
могут обращаться к частным адресам, а загрузки, запущенные LLM, по-прежнему проверяются.

Yahont Cloud не может обращаться к адресам внутри вашей сети ни при какой настройке.

## Ограничения

У коннектора нет ограничения размера файла, в отличие от коннекторов SharePoint и Google Drive.
Связанный PDF скачивается целиком. Действуют ограничения по времени и количеству:

| Ограничение | Значение | Примечания |
| - | - | - |
| Загрузка страницы | 30 с | Страница, не ответившая вовремя, повторяется, затем пропускается. |
| Ожидание отрисовки и проверки на бота | 5 с | Время после загрузки, отведённое на завершение работы JavaScript или проверки на бота. |
| Загрузка PDF и проверка содержимого | 60 с | Задайте `REQUEST_TIMEOUT_SECONDS`, чтобы изменить. Это глобальная настройка, не относящаяся к этому коннектору. |
| Повторов на страницу | 3 | С нарастающей паузой между попытками, до 10 с. |
| Попыток прокрутки на страницу | 20 | Только при включённом **Scroll before scraping**. Останавливается раньше, когда страница перестаёт расти. |

Медленная страница, превысившая тайм-аут загрузки во всех 3 попытках, исключается из обхода и записывается как ошибка,
а не индексируется с частичным содержимым.

## Устранение неполадок

| Сообщение или симптом | Причина и решение |
| - | - |
| Страниц намного меньше ожидаемого | Страницы вне области обхода. Сверьте базовый URL с разделом [Область обхода](#crawl-scope): путь в базовом URL ограничивает обход этим путём, а другой поддомен — это другой сайт. Страницы, на которые ничто не ссылается, в режиме **recursive** не находятся — используйте **sitemap**. |
| `No valid pages found.` | Не проиндексировано ничего. Базовый URL неверный, все страницы заблокированы или в карте сайта нет URL. |
| `Non-global IP address detected` | Адрес разрешается внутри вашей сети. См. [Обход внутреннего сайта](#crawling-an-internal-site). |
| В тексте страницы сказано, что JavaScript отключён | Содержимое находится в iframe. Yahont уже читает текст iframe, когда видит это сообщение; если результат всё равно скудный, сайт, вероятно, блокирует автоматизированные браузеры. |
| Страницы пустые или без основного содержимого | Содержимое подгружается при прокрутке. Включите **Scroll before scraping**. |
| `Forbidden (403)` или страница проверки | Защита от ботов. Yahont ждёт прохождения проверки и повторяет каждую страницу до 3 раз, но сайт, требующий решённой проверки, обойти нельзя. Попросите владельца сайта разрешить сервер Yahont. |
| `SSL error` | Сертификат просрочен, самоподписан или в нём нет промежуточного. Исправьте это на сайте; коннектор не пропускает проверку сертификатов. |
| `No URLs found in sitemap` | Адрес не является картой сайта, и для сайта она не найдена. Используйте **single** или **recursive**. |
| Каждое обновление заново читает весь сайт | Так и задумано. Инкрементального режима нет. Неизменённые страницы загружаются, но не переиндексируются. |
| Страницам нужен вход | Не поддерживается. Индексируйте исходную систему её собственным коннектором. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.