CDX API: как получить все страницы сайта из архива
Коротко
- CDX — служебный интерфейс веб-архива: отдаёт список сохранённых адресов с датами, типами и кодами ответа.
- Список — это план загрузки. Пока его нет, вы не знаете ни объёма работы, ни того, чего в архиве не хватает.
collapse=urlkeyубирает дубли: одна строка на адрес вместо всех снимков.filter=statuscode:200отбрасывает редиректы и ошибки — обычно именно это и нужно.- Большие домены выгружаются постранично; разбор добавляйте после проверки, а не на веру.
Прежде чем качать сайт из архива, нужно узнать, что там вообще есть. CDX-индекс отвечает на этот вопрос одной таблицей: адрес, дата снимка, тип файла, код ответа. Дальше эта же таблица становится списком загрузки и отчётом о потерях.
Содержание
1. Что такое CDX и зачем он нужен
Internet Archive хранит ответы сервера. CDX — способ спросить: «какие адреса этого домена вы сохранили и когда». Ответ приходит плоской таблицей, которую можно считать скриптом.
Три задачи, которые решает выгрузка:
- оценить объём: сто страниц или десять тысяч — от этого зависит тактика;
- увидеть структуру: разделы, категории, даты публикаций;
- найти потери: адреса, где архив отдаёт редирект или ошибку, придётся восстанавливать иначе.
2. Параметры запроса
Базовый адрес сервиса:
https://web.archive.org/cdx/search/cdx?url=example.com
| Параметр | Что делает | Когда нужен |
|---|---|---|
url | домен или адрес, с которого начинается выборка | всегда |
matchType | exact, prefix, host, domain | domain — все поддомены |
output | json, csv, xml, текст | json для скриптов, csv для таблиц |
fl | какие поля вернуть: timestamp,original,mimetype,statuscode | меньше данных — быстрее ответ |
filter | фильтр по полю: statuscode:200, !mimetype:image/jpeg | отсечь мусор сразу |
collapse | свернуть по полю, чаще urlkey | одна строка на адрес |
from, to | границы периода в формате 20240101 | нужен конкретный год |
limit | ограничение числа строк | пробный запрос |
page, pageSize | постраничная выдача | крупные домены |
showResumeKey, resumeKey | продолжение выдачи с места обрыва | длинные выгрузки |
3. Готовые запросы под задачу
Все сохранённые HTML-страницы, без дублей, только успешные:
https://web.archive.org/cdx/search/cdx?url=example.com&matchType=domain&output=json&fl=timestamp,original,mimetype,statuscode&filter=statuscode:200&filter=mimetype:text/html&collapse=urlkey
Только изображения — чтобы понять, сколько картинок вообще уцелело:
https://web.archive.org/cdx/search/cdx?url=example.com&matchType=domain&output=csv&fl=timestamp,original,mimetype&filter=mimetype:image/.*&collapse=urlkey
Один раздел за конкретный год:
https://web.archive.org/cdx/search/cdx?url=example.com/blog/&matchType=prefix&from=2023&to=2023&output=json&collapse=urlkey&fl=timestamp,original
Проверка одного адреса — сохраняли ли его вообще:
https://web.archive.org/cdx/search/cdx?url=example.com/about/&output=json&fl=timestamp,statuscode&limit=5
Не писать скрипт ради списка
Site Restorer сам запрашивает CDX, скачивает по списку и показывает, что вернулось, а что потеряно.
Скачать4. Как читать ответ
С output=json приходит массив массивов. Первая строка — имена полей, дальше данные:
[
["timestamp","original","mimetype","statuscode"],
["20240101120000","https://example.com/","text/html","200"],
["20240101120005","https://example.com/about/","text/html","200"]
]
Что важно в полях:
- timestamp — метка снимка; она же подставляется в адрес загрузки в режиме
id_; - original — исходный адрес, по нему строится путь файла;
- mimetype — тип; по нему решается, это страница, картинка или архив;
- statuscode — код, который отдал сервер; 200 — успех, 301/302 — редирект, 404 — страницы не было.
Один адрес с collapse=urlkey даёт строку не обязательно с самой свежей датой. Если нужен последний снимок, снимайте collapse и сортируйте сами.
5. Большие домены и пагинация
Когда адресов тысячи, один ответ либо обрывается, либо идёт слишком долго. Тогда выгрузку разбивают:
- по периодам —
fromиtoпо годам или месяцам; - по разделам —
matchType=prefixи адрес каталога; - постранично —
pageиpageSize; - с продолжением —
showResumeKey, затем передачаresumeKeyв следующий запрос.
Ответы архива не стоит забирать в цикле без пауз: сервис общий, и грубая выгрузка упирается в ограничения по частоте запросов. Признак — коды 429 и 503 вместо данных. Пауза и повтор решают это, а параллельные запросы в двадцать потоков — усугубляют.
6. Сохранить и использовать
Практичный минимум для выгрузки в CSV:
curl.exe -o cdx.csv "https://web.archive.org/cdx/search/cdx?url=example.com&matchType=domain&output=csv&fl=timestamp,original,mimetype,statuscode&filter=statuscode:200&collapse=urlkey"
Дальше по списку считается главное:
| Показатель | Как считать | О чём говорит |
|---|---|---|
| Страниц | строк с text/html | объём работы |
| Разделов | уникальные первые два сегмента пути | структура сайта |
| Картинок | строк с image/ | что вернётся из медиа |
| Период | минимум и максимум timestamp | какая версия сайта у нас есть |
Этот же файл становится списком загрузки: адрес и метка из строки подставляются в запрос с id_.
7. Типичные ошибки
- Забыли
collapse. Десять тысяч строк на тысячу адресов: качать будете то же самое десять раз. - Не отфильтровали коды. В список попадут редиректы и ошибки, и на их месте окажутся пустые файлы.
- Взяли только
text/html. Стили и скрипты не скачаются, копия откроется без оформления. - Игнорируют поддомены. С
matchType=hostчасть сайта не попадёт в список. - Думают, что список исчерпывающий. CDX показывает то, что сохранил краулер; адресов, которых он не видел, там нет по определению.
Частые вопросы
Можно ли получить список без программирования?
Да: те же параметры открываются в браузере, ответ показывается текстом или скачивается как CSV. С таблицей дальше можно работать в Excel, но при тысячах строк удобнее скрипт.
Почему в списке есть адреса с параметрами и мусором?
Краулер сохраняет всё, что встретил, включая ссылки с UTM-метками и пагинацию. Мусор отсекается фильтрами по mimetype, коду ответа и регулярным выражениям по адресу.
CDX отдаёт все снимки или один?
Все, если не указан collapse. С collapse=urlkey остаётся одна строка на адрес, и не обязательно самая свежая.
Что делать, если ответ обрывается?
Разбить выборку: по годам, по разделам или постранично. Для длинных выгрузок предусмотрены showResumeKey и resumeKey — продолжение с места обрыва.
Список из CDX — это точный список страниц сайта?
Нет. Это список того, что сохранил архив. Реальный сайт мог содержать больше страниц, особенно закрытых от обхода или редко посещаемых.
Смежные разборы
- Как проверить, что архив сохранил сайт — та же проверка, но без командной строки
- Как скачать сайт из Wayback Machine — что делать со списком дальше
- Почему картинки не восстанавливаются — как читать строки с типом image/
- Как восстановить сайт из веб-архива — полный порядок сборки копии
Не писать скрипт ради списка
Site Restorer сам запрашивает CDX, скачивает по списку и показывает, что вернулось, а что потеряно.
Скачать для WindowsМатериал описывает публичные возможности Internet Archive и практику восстановления сайтов. Обновлено 10 ноября 2026.