Пишем свой парсер Яндекс Wordstat, используя API Директа!

парсер-яндекс-wordstat

Всем привет! В предыдущей статье по Яндекс Wordstat я упомянул о возможности облегчить себе жизнь при подборе ключей с помощью API Директа. Как и обещал, я поделюсь своим скриптом на Python, который автоматизирует процесс сбора ключевых фраз. Разберем, как работает парсер Яндекс Wordstat на конкретном примере и, попутно, научимся получать доступ к API Директа и немножко кодить на Python).

API Директа

Думаю, долго распинаться на тему того, что такое Яндекс Директ необходимости нет) Здесь все более или менее в курсе, что такое реклама в интернете, какие виды рекламы бывают и насколько солидный кусок пирога в этом плане у Яндекса.

Кстати, напомню, что кроме контекстной рекламы существует очень эффективный источник целевого трафика – рассылки в соцсетях! Обязательно ознакомьтесь с моей статьей на эту тему!

Яндекс дружит с разработчиками и, предоставляет в свободное пользование доступ ко многим сервисам через программный интерфейс (API). За вопросы, которые касаются создания и ведения рекламных кампаний, отвечает сервис Яндекс Директ. И у него тоже есть API! Этим мы и воспользуемся)

API ( application programming interface ) – программный интерфейс приложения.

В частном случае, он позволяет работать с приложением из другого приложения (например, вашего скрипта) без привычного графического пользовательского интерфейса (GUI).

Если по-простому, то вы можете написать программу, которая будет работать с сервисом вместо вас!

Мы будем использовать API Директа, чтобы спарсить выдачу Wordstat по заданному списку ключевых фраз, минус-слов и региону сбора. Т.е. будем делать автоматически то, что в прошлый раз делали с помощью плагина Wordstat.Assistant, НО с возможностью автоматизации и больших объемов сбора (десятки тысяч фраз за раз)!


План работы

  1. Создаем новое приложение в Директе;
  2. Получаем отладочный токен для доступа к приложению;
  3. Отправляем заявку на доступ (тестовый или полный, для задачи парсинга значения не имеет);
  4. Активируем песочницу;
  5. Устанавливаем интерпретатор языка Python (Питон) на свой ПК (если не установлен);
  6. Скачиваем с Github проект Yandex.Wordstat-parser и вместе разбираемся с примером;
  7. Адаптируете скрипт под свои нужды и наслаждаетесь автоматизацией!

Может, звучит и сложно, но, на самом деле, пугаться здесь нечего. Сейчас все подробно по шагам разберем. Было бы желание, а от результата точно кайфанёте)

Парсер кроссплатформенный. Это значит, что она работает как на ПК под Windows, так и на Linux и Mac

Создаем приложение в Директе

Первое, что нужно – это создать учетку в Яндексе, если, вдруг, у вас ее еще нет. Далее, переходим на страницу API Директа:

api директа
Главная страница API Директа

Ниже, в разделе “С чего начать” есть ссылка на подробный мануал по регистрации нового приложения. В конечно счете, нужно попасть на страницу создания нового приложения https://oauth.yandex.ru/client/new:

Страница создания нового приложения Яндекс Директ
Страница создания нового приложения Яндекс Директ

Заполняем необходимые поля:

  • Название приложения: можете задать любое название (например, “парсер Яндекс Wordstat” или wordstat_parser”)
  • Платформы: отмечаем “Веб-сервисы”, подставляем Callback URL, путем нажатия кнопки “Подставить URL для разработки“. Это нужно сделать, чтобы мы могли получить веб-доступ к нашему будущему приложению
  • Доступы: выбираем Яндекс.Директ -> Использовать API Яндекс.Директа

Остальное заполнять необязательно. Нажимаем “Создать приложение”:

создать приложение Яндекс Директ

Попадаем на такую страницу и копируем ID нашего приложения:

ID приложения

ID приложения понадобится при получении отладочного токена, который вы будете передавать из скрипта в приложение при каждом подключении. Этот механизм защищает ваше веб-приложение от несанкционированных подключений. Так, как речь идет об API Директа, т.е. о доступе к рекламному кабинету, где может быть ненулевой баланс, необходимость авторизации обоснована.

Получаем отладочный токен

Мы скопировали ID нашего приложения. Теперь, в адресной строке браузера пишем следующий URL с параметрами:

https://oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор приложения>

Вместо <идентификатор приложения> подставляем скопированный ID приложения (без скобок) и переходим по получившейся ссылке. Откроется окно, где указан ваш токен – ключ API Yandex:

ключ api yandex
Токен доступа к приложению API Директа

Поздравляю! Токен получен. Сохраните этот ключ в надежном месте, его мы будем вставлять в наш парсер Яндекс Wordstat.

Более подробно процесс получения ключа доступа описан в официальной документации.

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

Наберитесь терпения, осталось немного) Чтобы Яндекс разрешил нам работать с приложением, нужно запросить доступ. Есть 2 варианта доступа: тестовый и полный. Для задач парсинга подойдет тестовый доступ, поэтому, именно его мы будем получать.

Переходим на страницу управления заявками: https://direct.yandex.ru/registered/main.pl?cmd=apiCertificationRequestList

Страница управления заявками
Страница управления заявками

У меня уже есть одобренная заявка (при первом входе, потребуется принять пользовательское соглашение, после чего, получите страницу подобного вида). Вам же нужно нажать кнопку “Новая заявка” -> “Тестовый доступ“:

Страница оформления заявки на тестовый доступ к API Директа
Страница оформления заявки на тестовый доступ к API Директа

Заполняем необходимые поля:

  • application_id: выбираете свое приложение из списка
  • E-mail: ваша почта для связи
  • Данные о компании: можно не заполнять
  • Выберите утверждение…: здесь выбираем первый пункт “Прямой рекламодатель и автоматизируете управление собственными рекламными кампаниями”
  • Для чего предназначено приложение: выбираем “Другое” и пишем честно, как есть. Например, “парсер Яндекс Wordstat
  • Основные функции приложения: выбираем “подбор ключевых слов (использование wordstat)
  • Какие новые возможности работы с Директом дает ваше приложение пользователям: пишем что-то в духе “автоматически подбирает ключевые фразы по заданным критериям
  • Ожидаемая дата завершения разработки: я писал примерно + месяц от сегодняшней даты. Влияет ли это на одобрение заявки, честно, не знаю

Читаем пользовательское соглашение. Если все устраивает, соглашаемся и отправляем заявку. Готово)

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

Активируем песочницу

Не дожидаясь одобрения заявки, можно завершить последние приготовления, а именно, активировать песочницу. Для этого, перейдите в соответствующий раздел и нажмите кнопку “Начать пользоваться песочницей”:

Активация песочницы Яндекс Директ
Активация песочницы Яндекс Директ

Песочница – это пространство для тестирования. Вы можете работать с API Директа и, при этом, не сломать свою действующую рекламную кампанию.

Выбираем роль = “Клиент“, ставим галочку “Создать тестовые кампании” и жмем “Продолжить“. Песочница создана:

директ api песочница

Проверяем, что ничего не забыли

Проверим, что мы должны иметь на данный момент:

  1. У нас создано приложение в Яндекс Директ
  2. Мы получили и сохранили отладочный токен (он же – Yandex API Key)
  3. Получено одобрение на тестовый доступ к нашему приложению
  4. Активирована песочница

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

Устанавливаем Python

Первое, что нужно сделать – это установить интерпретатор языка Рython (он же – питон). Для этого, заходим на официальный сайт проекта и скачиваем подходящую для нашей системы сборку: https://www.python.org/downloads/

Официальный сайт Python
Официальный сайт Python

Почему именно Python? Я сделал выбор в пользу питона по двум причинам:

1. Очень низкий порог вхождения: даже непрограммист вполне в состоянии быстро разобраться с основами;

2. В официальной документации на API Директа примеры написаны, в том числе, на питоне

Дальше все стандартно: запускаем инсталлятор и следуем инструкциям.

Очень удобно, что из коробки вместе с интерпретатором поставляется простенькая среда разработки – IDLE. Конечно, разработчики с опытом уже имеют свою рабочую среду и, понятно, будут работать в ней, но для старта и первого знакомства, IDLE вполне достаточно.

Среда разработки IDLE
Среда разработки IDLE уже входит в состав дистрибутива Python

Лично я, в своей работе использую среду Visual Studio Code. Мои скромные потребности она полностью удовлетворяет: интеграция с Git, подсветка и дополнение кода, линтер, встроенный терминал и удобный отладчик. К тому же, она бесплатная) Если захотите чуть глубже окунуться в разработку – рекомендую.

Поздравляю, с подготовкой мы закончили)

Работаем с Yandex.Wordstat-parser

Я написал небольшой класс для работ с API Яндекс Директ в части парсинга ключей из Вордстат. Делал я его для себя и своими силами, поэтому, на идеальный вариант он никак не претендует, но, со своими задачами справляется неплохо) Обсуждение в комментариях приветствуется.

Есть 2 способа установить его: просто скачать с GitHub или с помошью Git (продвинутый способ). Рассмотрим оба варианта.

Качаем парсер Яндекс Wordstat с GitHub

Это очень просто:

  1. Переходим в репозиторий на GitHub по ссылке: https://github.com/igor-kantor/Yandex.Wordstat-parser
Репозиторий парсера api wordstat на GitHub
Репозиторий Yandex.Wordstat-parser на GitHub
  1. Нажимаем зеленую кнопку “Clone or download” – > “Download ZIP”;
  2. Распаковываем архив в любую удобную директорию;
  3. Готово)

Установка с помощью Git

Тоже самое можно сделать одной простой командой в командной строке, конечно, при условии, что у вас установлен клиент Git:

git clone https://github.com/igor-kantor/Yandex.Wordstat-parser

Git – это одна из самых распространенных систем контроля версий программного обеспечения. Многие разработчики используют ее для управления своим кодом и совместной работы над программным продуктом.

GitHub – популярный провайдер Git, предоставляющий место хранения и коллективной работы над исходными кодами.

Установить клиент Git можно отсюда. После установки, команды git станут доступны из командной строки. В некоторых случаях, требуется дополнительно прописать путь к git в переменную реды PATH. Если будет интерес к теме работы с Git – пишите в комментах, может, подготовлю небольшую статью.

Настраиваем скрипт и начинаем парсить!

У нас есть папка с файлами, скаченными с GitHub:

парсер вордстат бесплатно

Класс для работы с API Директа содержится в файле “wsparser.py“. Его трогать не нужно.

В файле “example.py” приведен пример работы с классом wsparser – это и есть парсер Вордстата, в который нужно подставить наши исходные данные.

Открываем файл “example.py” в IDLE (или в любом текстовом редакторе) и вводим свой ключ api yandex, он же – отладочный токен (как его получить, читай выше) – параметр token, и ваш логин в Яндекс – userName:

Вводим токен и логин в парсер Wordstat
Вводим токен и логин в парсер Wordstat

Параметр url можете оставить без изменения. Если вы получали полный доступ и хотите работать с API Директа не в режиме песочницы, то укажите вместо этого, адрес, указанный строчкой выше (адрес полного доступа). Для парсинга в этом нет необходимости.

Далее, указывается список минус-слов (подробнее, в этой статье), свой список фраз и география (если требуется), по которым хотите собрать выдачу. :

Минус-слова и фразы для парсинга яндекс wordstat
Минус-слова, фразы и география для парсинга

Если хотите уточнить географию – это делается указанием кода региона и/или города в параметре geo.

Больше никаких настроек делать не нужно) Сохраняете файл и запускаете на исполнение. Файл содержит подробные комментарии ко всем действиям – настоятельно рекомендую ознакомиться!

Запуск скрипта

Для запуска скрипта на исполнение достаточно в верхней части окна нажать Run – > Run Module. Откроется терминал Python Shell, куда будет выводиться лог выполнения скрипта. Если все сделали правильно, то увидите нечто подобное:

Лог парсера
Лог парсера

Теперь откройте папку, где лежит “example.py“:

Результат парсинга
Результат парсинга

В файлах “phrases_left.txt” и “shows_left.txt” лежат фразы и частотность левой колонки выдачи Wordstat. В файлах “phrases_right.txt” и “shows_ right .txt” – правая колонка (похожие запросы). За один проход собирается 300 фраз левой колонки для одной фразы. У нас было 2 фразы на входе (“фотошоп” и “photoshop”), поэтому, в результате, мы получили 600 фраз на выходе.

Ограничения API Директ на парсинг

Баллы API Директа

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

Баллы API – это, своего рода, валюта API Директа. Запрос выдачи по одной фразе стоит 10 баллов. Когда баллы закончатся, запросы обрабатываться перестанут.

Так у Яндекса реализован механизм ограничения нагрузки на сервера обработки.

Хорошая новость! Баллы со временем автоматически пополняются.

У нас за 1 запрос парсилось 2 фразы, поэтому, сняли 20 баллов.

Отчеты

Другие ограничения связаны с тем, что результаты парсинга возвращаются в виде отчетов. Кол-во отчетов на одного пользователя ограничено 5 штуками. При попытке сформировать шестой отчет будет получена ошибка. Поэтому, если вы заметили, в скрипте, кроме методов создания и получения отчета createReport, getReportList и readReport используется метод для удаления отчетов с сервера – deleteReport.

Еще ограничение: в одном отчете можно получить результаты сбора только для 10 фраз.

Для более глубокого парсинга вы можете модифицировать алгоритм скрипта под себя и сделать двух- и даже трехпроходовый парсер Яндекс wordstat. Для этого, после получения первых 300 ключевых фраз (если парсили одну фразу) можно разбить результат на 30 групп по 10 фраз и снова запрашивать отчеты, уже по 10 фраз. Потребуется запросить 30 отчетов.

Заключение

Конечно, есть достаточно много хороших и не очень инструментов, упрощающих жизнь SEO-шников, директологов, арбитражников и вебмастеров.

Для себя я уже сделал выбор в пользу десктопного софта – KeyCollector (не путать с названием моего блога😎). Это мощный инструмент, облегчающий работу по сбору и анализу больших ядер в сотни тысяч ключей. Цена инструмента вполне демократичная, а функционал покроет почти любые потребности.

Тем не менее, надеюсь, что моя статья сподвигнет кого-то на изучение чего-то нового для себя. Разве не от новых достижений мы получаем свою порцию дофамина?) Возможно, кому-то окажется полезным класс на Python и вы используете его в реальном проекте или для создания собственного софта.

С вами был Игорь Кантор, не забывайте подписываться на новости! Всем профита!

Вступайте в нашу группу ВК, чтобы не пропустить обновления:


Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *