Старые адреса выгрузки
До появления API результаты скачивали, добавляя ?export= и ключ
к обычному адресу поиска. Эти адреса по-прежнему работают точно так же, как
всегда, байт в байт. Отключать их мы не собираемся.
https://publicwww.com/websites/%22angular.min.js%22/?export=csv&key=YOUR_KEY
export= | Что возвращает |
|---|---|
urls | По одному URL на строку. |
csv | domain;rank |
csvu | url;rank |
csvsnippets | domain;rank;snippet |
csvsnippetsu | url;rank;snippet |
cluster | Не скачивает результаты, а сохраняет их как кластер. |
&delimiterColumns= и &delimiterSnippets=
меняют разделители, а
https://publicwww.com/profile/api_status.xml отдаёт расход за
день в XML. Передавайте ключ в заголовке
Authorization: Bearer <your api key>; прежняя форма
?key= ещё работает, но устарела: ключ в адресе попадает в историю
браузера и журналы серверов.
Почему они отдельно
Эти адреса - слой совместимости, и именно поэтому API может быть обычным современным API. Их вывод закреплён байт в байт тестом, который запускается при каждом изменении, так что скрипт, написанный годы назад, продолжает разбирать то же, что и всегда. Ничего нового в них не добавляется.
Как перенести скрипт
Ближайшие соответствия:
| Было | Стало |
|---|---|
?export=csv | format=csv |
?export=csvu | format=csv&columns=url,rank |
?export=urls | format=txt |
?export=csvsnippets | format=csv&snippets=1 |
?export=csvsnippetsu | format=csv&columns=url,rank,snippets&snippets=1 |
&key= | Authorization: Bearer |
&delimiterColumns= | delimiter= |
| запрос в пути URL | query= или тело JSON |
api_status.xml | /v1/account |
Колонки совпадают, так что парсер обычно менять не нужно. А то, что меняется, того стоит:
- Неверный ключ - это
401с телом JSON, а не200со словамиWrong API keyтам, где должны быть строки. - Слишком частые запросы сразу получают
429сRetry-After, а не держат соединение до полуминуты, чтобы потом получить отказ. - Исчерпанный лимит - это ошибка. На старых адресах он незаметно переводит вас на ограничения бесплатного тарифа и возвращает меньше строк, и в ответе об этом ничего не сказано.
- Урезанный ответ помечен -
X-Truncated. - Есть листание, так что клиенту не нужно скачивать всё, чтобы посмотреть первые двадцать строк.