RAG Web Crawler — веб-страницы в Markdown и текстовые фрагменты
Обходит публичные веб-страницы и выдаёт чистый Markdown, простой текст и перекрывающиеся фрагменты с исходным URL и позициями символов, готовые для RAG.
ключевые возможности
Чистый Markdown и простой текст каждой страницы — с заголовками, списками, ссылками, блоками кода и простыми таблицами
Фрагменты, готовые к эмбеддингу: перекрываются и заканчиваются на границах абзацев или предложений, у каждого стабильный id, исходный URL и заголовок и точные позиции символов для цитирования
Сначала основной контент: меню, шапки, подвалы и боковые панели отбрасываются, а CSS-селекторы убирают всё остальное, что вы укажете
Переход по ссылкам внутри каждого сайта на глубину до пяти уровней, каждая страница загружается один раз
Поиск вместо URL: каждая страница из результатов запроса обходится как стартовый URL (нужен платный тариф Apify)
robots.txt соблюдается по умолчанию, запросы к одному сайту идут с вежливыми паузами
Страницы остаются на своём языке — английском, китайском и других — без перевода
Статус и код ошибки для каждой страницы и сводка для каждого запуска со счётчиками и причиной остановки
сценарии использования
- Сборка базы знаний для RAG-чат-бота из документации и страниц справки
- Опора ИИ-агентов на актуальные веб-страницы, которые они могут цитировать
- Превращение списка статей в эмбеддинги для семантического поиска
- Сбор страниц, которые поиск находит по теме, на языке оригинала
- Регулярное обновление векторного хранилища: id фрагментов не меняются, пока не меняется страница
- Передача веб-страниц в Markdown ИИ-агентам через MCP-сервер Apify
входные параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
startUrls | array | опционально | URL публичных страниц для обхода, до 1 000 |
query | string | опционально | Поисковый запрос, страницы результатов которого обходятся (нужен платный тариф Apify) |
queries | array | опционально | Дополнительные поисковые запросы, объединяются с query |
maxResultsPerQuery | number | опционально | Сколько результатов поиска обходить на запрос (по умолчанию 5, не больше 50) |
maxPages | number | опционально | Максимум разных страниц, которые планирует запуск (по умолчанию 20, не больше 1 000) |
maxDepth | number | опционально | На сколько уровней ссылок углубляться внутри каждого сайта (по умолчанию 0 = только стартовые URL, не больше 5) |
maxConcurrency | number | опционально | Страниц, обрабатываемых одновременно (по умолчанию 3) |
maxSearchRequests | number | опционально | Поисковых запросов за запуск, включая повторы (по умолчанию 10, 0 = без поиска) |
maxFetchRequests | number | опционально | Все сетевые попытки за запуск, включая robots.txt и повторы (по умолчанию 100) |
requestTimeoutSecs | number | опционально | Тайм-аут каждого запроса в секундах (по умолчанию 30) |
maxResponseBytes | number | опционально | Самый большой принимаемый ответ страницы (по умолчанию 2 МиБ) |
maxContentChars | number | опционально | Самый длинный текст, сохраняемый для страницы, в символах (по умолчанию 50 000) |
maxOutputBytes | number | опционально | Общий объём вывода за запуск (по умолчанию 20 МиБ) |
respectRobotsTxt | boolean | опционально | Сначала проверять robots.txt каждого сайта (по умолчанию включено) |
onlyMainContent | boolean | опционально | Оставлять только основной контент страницы (по умолчанию включено) |
removeSelectors | array | опционально | CSS-селекторы элементов, удаляемых перед извлечением |
chunkSize | number | опционально | Длина фрагмента в символах, а не в токенах (по умолчанию 1 000) |
chunkOverlap | number | опционально | Сколько символов делят соседние фрагменты (по умолчанию 150) |
Пример вывода
Одна сохранённая страница из реального запуска: текст сокращён, показан один из пяти её фрагментов.
1{
2 "schemaVersion": "1.0",
3 "url": "https://www.w3.org/WAI/tutorials/tables/one-header/",
4 "title": "Tables with One Header",
5 "description": "Accessibility resources free online from the international standards organization: W3C Web Accessibility Initiative (WAI).",
6 "languageCode": "en",
7 "canonicalUrl": "https://www.w3.org/WAI/tutorials/tables/one-header/",
8 "markdown": "# Tables with One Header\n\nin [Tables Tutorial](https://www.w3.org/WAI/tutorials/tables/)\n\n## Overview\n\n…",
9 "text": "Tables with One Header\n\nin Tables Tutorial\n\nOverview\n\nThis page covers tables that have one simple header for rows or one simple header for columns. …",
10 "chunks": [
11 {
12 "id": "495cb4e58e13bbf9b5cdbe922f7ea652973ca4dfda61b952aaa021db045a450c",
13 "index": 0,
14 "text": "Tables with One Header\n\nin Tables Tutorial\n\nOverview\n\nThis page covers tables that have one simple header for rows or one simple header for columns. …",
15 "startChar": 0,
16 "endChar": 988,
17 "sourceUrl": "https://www.w3.org/WAI/tutorials/tables/one-header/",
18 "title": "Tables with One Header"
19 }
20 ],
21 "contentTruncated": false,
22 "sources": [],
23 "crawl": {
24 "depth": 0,
25 "httpStatusCode": 200,
26 "loadedAt": "2026-10-19T07:03:53.643Z",
27 "contentType": "text/html",
28 "renderingMode": "http",
29 "extractionMethod": "main"
30 }
31}
Позиции фрагментов считаются в кодовых точках Unicode внутри text. Каждый запуск также пишет REQUESTS — результат по каждой странице со статусом и кодом ошибки — и OUTPUT — сводку запуска со счётчиками, причиной остановки и списанными событиями.
Советы
- Используйте
idкак ID записи в векторном хранилище. Он не меняется между запусками, пока не меняются страница и настройки нарезки, поэтому при записи фрагментов поidв плановом запуске они заменяются, а не дублируются. - Начните с нескольких страниц. Проверьте Markdown своих страниц, прежде чем увеличивать
maxPagesилиmaxDepth, а остатки вроде блоков похожих ссылок уберите черезremoveSelectors. - Смотрите
REQUESTSвместе с Dataset. Запуск может завершиться успешно, даже если часть страниц пропущена или завершилась ошибкой, и для каждой указана причина.
частые вопросы
Чем он отличается от обычного веб-парсера?
Нужен ли API-ключ?
Он выполняет JavaScript?
Какие страницы он может прочитать?
Разрешено ли обходить сайты?
похожие в ~/utility
Schema Markup Scraper & SEO Auditor
Извлечение структурированных данных и SEO-аудит для любого сайта.
открытьUniversal Web Printer — URL и HTML в PDF и изображения
Конвертация URL и HTML в PDF, PNG, JPEG или WebP.
открыть