Аналог XMLRiver, XMLStock и A-Parser для парсинга выдачи
· Яндекс XML · миграция
Если вы снимаете выдачу через XMLRiver, XMLStock, XMLProxy или XMLSeo, переезд к нам занимает примерно столько времени, сколько нужно, чтобы поменять адрес в настройках программы. Формат ответа тот же самый, параметры почти совпадают, а страница выдачи стоит 0.01 ₽. Ниже разберём, что именно менять в запросах и где сервисы всё-таки расходятся.
Почему вообще XML, а не JSON
Исторически всё выросло из Яндекс XML: официального сервиса, который отдавал выдачу в XML и раздавал лимиты
по расписанию. Под этот формат написаны Key Collector, TopSite, SiteAnalyzer, KeyAssort и половина
самописных парсеров рунета. Никто не станет переписывать рабочий софт ради красивого JSON, поэтому все
сервисы-посредники отдают ровно ту же XML-структуру: yandexsearch → response → results → grouping →
group → doc.
Мы отдаём и то, и другое. Есть /api/yandex с обычным JSON, если вы пишете свой скрипт, и /api/yandex/xml в формате Яндекс XML, если у вас уже настроен Key Collector. Ссылку с ключом для второго случая можно скопировать прямо в личном кабинете.
Что менять в запросе
Берёте свой рабочий URL и меняете адрес сервиса на наш. Дальше сверяетесь с таблицей: большинство параметров называются одинаково, потому что все они родом из того же Яндекс XML.
| Что нужно | XMLRiver / XMLStock | JSON SEO |
|---|---|---|
| Авторизация | user + key |
только key (или заголовок Authorization: Bearer) |
| Запрос | query |
query, text или q |
| Регион Яндекса | lr |
lr или region |
| Регион Google | lr (XMLStock), loc (XMLRiver) |
region, а также loc и числовой lr |
| Сколько позиций | groupby |
groupby, кратно 10, до 200 |
| Страница | page (с нуля) |
page (с нуля) |
| Доменная зона | domain |
domain или zone (ru, com, kz, by, uz, tr) |
Выглядит это так:
https://jsonseo.ru/api/yandex/xml?key=ВАШ_КЛЮЧ&query=купить+ноутбук&lr=213&groupby=50
Где мы расходимся с ними
Три момента, на которых можно споткнуться.
Параметр lr в Google. Тут единого стандарта нет вообще: у XMLStock это ID
региона, а у XMLRiver код языка результатов. Мы принимаем lr как регион, только если он
числовой, а язык интерфейса задаётся отдельным hl. Так работают оба сценария и ничего не
ломается молча.
Глубина. У нас потолок 200 позиций за запрос: groupby=200 при
page=0. Дальше двухсотой строки не уйти, но честно говоря, дальше сотой уже мало кому нужно.
Оплата пагинации. Платится только запрошенная страница: при page=1 и
groupby=100 спишется за вторую сотню, а не за две. Раньше воркер шёл к нужному месту от
начала выдачи и дорога тоже тарифицировалась — теперь он начинает сразу со смещения.
Но брать глубину постранично всё равно не стоит, и причина не в деньгах: выдача успевает измениться
между двумя запросами. Нужны все двести — берите их одним запросом через groupby.
Подробнее — в статье про параметр
page.
А что насчёт A-Parser
A-Parser - это не XML-сервис, а десктопный парсер: программа, которую вы ставите на свой сервер или компьютер, покупаете лицензию и крутите сами. Внутри десятки парсеров (SE::Yandex, SE::Google и другие), многопоточность, свои прокси и аккаунты. Это мощный комбайн для тех, кому нужно парсить всё подряд большими объёмами и кто готов возиться с инфраструктурой.
Мы - другое: облачный API выдачи. Никаких лицензий, прокси и капчи - отправляете HTTP-запрос и получаете готовую выдачу в JSON или XML, платите только за фактические страницы. Если задача - снимать выдачу и позиции, а не строить парсерный цех, API проще и дешевле: не нужно содержать сервер, обновлять парсеры под изменения вёрстки и бороться с блокировками.
| A-Parser | JSON SEO | |
|---|---|---|
| Формат | Десктопная программа (лицензия) | Облачный API (HTTP-запросы) |
| Инфраструктура | Свой сервер, прокси, аккаунты | Ничего не нужно |
| Оплата | Лицензия + расходы на прокси | 0.01 ₽ за страницу выдачи |
| Обновление парсеров | Сами, под изменения вёрстки | На нашей стороне |
Про деньги
У нас 10 ₽ за 1000 страниц выдачи, то есть 0.01 ₽ за страницу, одна цена на Яндекс, Google, Bing и Вордстат. Пополнили баланс и тратите, пока не кончится. При регистрации на счёт падают 10 ₽, так что первую тысячу запросов можно сделать, вообще ничего не платя, и спокойно сравнить нашу выдачу со своей текущей.
Отдельно стоит знать про break_domain. Если вы снимаете не всю выдачу, а позицию конкретного сайта, передайте его домен, и парсер остановится, как только его встретит. Сайт нашёлся на второй странице? Заплатите за две, а не за десять.
Что делать прямо сейчас
- Зарегистрируйтесь и заберите ключ в кабинете. Там же лежит готовая XML-ссылка, её можно сразу вставить в Key Collector.
- Прогоните десяток своих обычных запросов и сравните выдачу с текущим сервисом. Тратятся копейки, а картина станет понятной сразу.
- Если что-то не сходится, посмотрите документацию: там расписаны все параметры и примеры ответов.