Перейти к содержимому
Rankupedia
RankupediaЗарегистрироваться

Статья: ошибки

Запросы проверки оценки домена, которые завершаются ошибкой: 401, 402 и пустые строки

Статья: ошибки. Два HTTP-кода несут смысл, один флаг сообщает о завершении запроса, а свойство данных объясняет большинство сюрпризов.

Сломанный каменный мост с отсутствующим участком и тремя ключами на мшистом столе

Симптом, причина, исправление

СимптомВероятная причинаИсправление
HTTP 401Ключ отсутствует, введён с ошибкой или отозванОтправьте key=sk_... или заголовок Bearer; скопируйте ключ заново со страницы аккаунта
HTTP 402Кредиты исчерпаныПополнение в USDT (TRC-20); бесплатные операции всё ещё работают
ok равно falseЗапрос не завершёнСначала прочитайте HTTP-статус, затем тело ответа
Домен выглядит без оценкиМало ссылок или нет ссылок в индексеПосмотрите на реферальные домены; DR 0 означает, что они не найдены
Отсутствует недавняя ссылкаИндекс обновляется примерно раз в месяцДождитесь следующего обновления; не повторяйте запрос циклом
Страницы обрываются после 50 000 строкЛимит пагинацииУзкий запрос или сортировка, затем повторная пагинация
Массовый запрос отклонёнБолее 2 000 доменовРазбейте список на части
Лимиты в одном месте

Платежи в USDT по сети TRC-20. Вход только через Google. Лимиты: массовые списки — 2 000 доменов, запросы на список — 1 000 строк, глубокая пагинация — 50 000 строк.

Порядок диагностики

Начните с кода статуса. 401 касается идентификации, а 402 — денег. Они исправляются в разных местах.

Затем прочитайте ok. Он есть в каждом ответе. При аутентифицированных запросах _credits показывает стоимость и оставшийся баланс, так что исчерпание баланса видно до появления 402.

Сохраните этот порядок в своём руководстве по эксплуатации. Тот, кто сразу перейдёт к данным, может потратить утро на проблему, которую код статуса назвал бы сразу.

Только после этого можно заподозрить данные. У молодого сайта часто низкий DR. Причина редко в баге. Вероятнее всего — месячный снимок, который старше его ссылок. Сравните показатель со статьёй о формуле.

Разделение проблемы с ключом и проблемой с балансом

401 и 402 похожи в скрипте, потому что оба останавливают один и тот же цикл. У них разные причины, поэтому разделите их до любых изменений.

Начните с бесплатной операции на том же домене. Если она отвечает, а платная — нет, домен в порядке, а проблема в ключе или балансе.

Когда 401 следует после копирования

Ключ, скопированный с пробелом в конце или обрезанный, — частая причина 401. Ключи начинаются с sk_, поэтому проверьте этот префикс и сравните всю строку с копией на странице аккаунта.

Замените ключ в одном месте и запустите тот же одиночный запрос. Изменение нескольких вещей одновременно делает результат нечитаемым.

Когда появляется 402 после пополнения

402 означает, что у платной операции не осталось кредитов. Сначала прочитайте оставшийся баланс в _credits в следующем аутентифицированном ответе.

Если баланс выглядит корректно, сравните его со стоимостью запроса, который завершился ошибкой. Числа покажут, превышает ли стоимость запроса баланс.

Зафиксируйте время пополнения, чтобы позже сравнить лог и баланс.

Краткая запись баланса до и после каждого пополнения облегчит чтение следующего 402.

Разбор пустого результата

01

Подтвердите завершение запроса

Сначала прочитайте ok. Значение false означает, что запрос не завершился, поэтому пустой список ничего не говорит о домене.

02

Проверьте отправленное имя

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

03

Сравните с бесплатной операцией

Запустите overview для того же имени. Если он возвращает данные, а список — нет, следующим подозреваемым является действие списка и его лимиты.

04

Проверьте дату обновления

Индекс обновляется примерно раз в месяц. Ссылка, добавленная после последнего обновления, не появится, сколько бы вы ни вызывали конечную точку.

Одна натянутая пружина в деревянном механизме часов на верстаке

Минимальная политика повторов

  • Никогда не повторяйте 401 или 402 автоматически
  • Повторяйте сетевые ошибки с увеличивающимися задержками
  • Остановитесь, когда _credits покажет баланс, близкий к нулю
  • Кэшируйте успешные ответы на месяц
  • Фиксируйте действие и домен при каждой ошибке

Пограничные вопросы

Списываются ли кредиты за неудачный запрос?

В этом справочнике не указано правило биллинга для неудачных запросов. Следите за _credits в следующем аутентифицированном ответе и сравнивайте оставшийся баланс со своими ожиданиями.

Почему бесплатная операция работает после 402?

Потому что domain, overview, stats и suggest не требуют ключа и кредитов. Только платные операции блокируются при пустом балансе.

Откуда берутся имена полей?

См. статью о полях API для общей структуры и вызовите живую конечную точку для строк, специфичных для действия.

Почему оценка может выглядеть неверно без ошибки

Иногда все поля приходят вовремя, но число всё равно удивляет. Ответ корректен для своего снимка, поэтому реальный вопрос в том, что содержит этот снимок.

Три ситуации объясняют большинство таких случаев.

Недавно запущенный домен

Сайт, запущенный недавно, может показывать DR 0, потому что снимок старше его ссылок. Здесь ноль означает, что не найден ни один ссылающийся домен, а не вердикт о сайте.

Дождитесь более позднего обновления, прежде чем читать показатель как оценку сайта.

Сравните возраст домена с циклом обновления перед действием. Новое имя и старое имя, которое никогда не привлекало ссылок, выглядят одинаково в одном снимке.

Ссылка, появившаяся в этом месяце

Ссылки, добавленные после последнего обновления, отсутствуют в показателе. Повторный запрос вернёт тот же ответ до следующего обновления.

Зафиксируйте дату ссылки и дату снимка, чтобы разрыв было легко объяснить любому, кто читает отчёт.

Исчезнувшая ссылка

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

Сравните два снимка с разницей в несколько месяцев, прежде чем винить конечную точку.

Считайте, сколько доменов меняются, а не только общее число. Небольшая потеря, распределённая по многим сайтам, выглядит иначе, чем одна большая потеря с одного сайта.

Где находится каждое исправление

ИсправлениеМесто
Новый или скопированный ключСтраница аккаунта
Пополнение в USDT (TRC-20)Страница аккаунта
Разбиение и повторВаш собственный клиентский код
Ожидание обновленияНичего не делать; индекс обновляется примерно раз в месяц
Лупа над сучком дерева с каплей воды, падающей рядом

Воспроизведение ошибки для отчёта о баге

01

Сведите к одному запросу

Уберите цикл и оставьте одну команду curl, которая завершается ошибкой.

02

Запишите ответ

Отметьте HTTP-статус, значение ok и поле _credits, если оно присутствует.

03

Попробуйте бесплатную операцию на том же домене

Если overview работает, а платная операция — нет, проблема в ключе или балансе, а не в домене.

04

Отправьте детали

Укажите время, действие и первые и последние символы ключа, чтобы запрос можно было сопоставить с аккаунтом. Не включайте полный ключ в отчёт.

Что записывать при каждом неудачном запросе

Краткой записи достаточно для диагностики большинства ошибок.
ЗаписатьПочему это помогает
HTTP-статусРазделяет 401 и 402 на первый взгляд
Значение okПоказывает, завершился ли запрос
_credits, когда присутствуетПоказывает баланс на момент ошибки
Действие и доменПозволяет намеренно повторить тот же запрос
Время запросаСопоставляет его с ежемесячным обновлением

Почему не автоповтор

Цикл по 402 тратит время и не даёт результата. Цикл по 401 может сработать как срабатывание защиты от злоупотреблений у любого провайдера, нашего или Google.

Оставьте повторы для сетевых ошибок и увеличивайте паузу между каждым повтором. Три попытки — разумный предел для ночной задачи.

Допустим, ночная задача сталкивается с 402 в два часа ночи. Повтор каждые пять минут до завтрака даёт примерно сотню идентичных ошибок, и каждую строку лога кому-то придётся читать позже.

Используйте фиксированный предел и для сетевых повторов, и логируйте каждую попытку. Предел, который можно сформулировать в одном предложении, легко обосновать, когда задача останавливается.

Оповещения для задачи, работающей без присмотра

Ночная задача проверки оценки домена должна сообщать кому-то, когда она останавливается, и объяснять почему. У двух кодов разные оповещения, поэтому держите их раздельно в сообщении.

Оповещение при первом 401

Один 401 обычно означает проблему с ключом, поэтому один сбой стоит сообщения. Ожидание ста идентичных ошибок только задерживает исправление.

Включите в оповещение первые и последние символы ключа, а не весь ключ, чтобы сообщение было безопасно для отправки коллеге.

402 заслуживает отдельного сообщения, так как его исправление — пополнение, а не замена ключа.

Тихая задача не обязательно означает здоровую задачу. Считайте завершённые запуски, а не только упавшие, и оповещайте, когда ни один счётчик не меняется за полный цикл.

Оповещение о падающем балансе

Установите предупреждение на уровне, покрывающем оставшуюся часть запуска, а не на нуле. Баланс, почти пустой при запуске задачи, не оставляет места для повторов.

Читайте уровень из _credits в каждом аутентифицированном ответе, чтобы предупреждение не требовало дополнительного запроса.

Примечание о устаревших данных

Наш краулер и индекс ссылок обновляются примерно раз в месяц. Недавно запущенный сайт может показывать DR 0, и это корректное чтение снимка, так как в нём ещё нет ссылающихся доменов для сайта.