Букмарклет для экспорта ключевых слов из Яндекс wordstat

Честно говоря, я не совсем понимаю, почему Яндекс не хочет сделать нормальный API для своего сервиса подбора слов (wordstat). Так или иначе, но эти данные будут парситься и экспортироваться сеошниками. Для себя я создал простой букмарклет (javascript закладка браузера), который позволяет экспортировать данные Яндекс wordstat в формате CSV, о нём и поговорим.

А начну я с того, что результат подбора слов состоит из двух таблиц «что искали со словом…» и «что ещё искали люди, искавшие…», имеющие CSS-класс b-word-statistics__table. Каждая такая таблица состоит из строк, с элементами b-phrase-link__link (ключевое слово) и b-word-statistics__td-number (количество показов в месяц). Наличие таковых определяет, что это не заголовок. Дальше дело техники.

wordstat

Основная проблема здесь состоит в авторизации. Без неё получить доступ к статистике невозможно. К тому же есть неугомонная капча и вероятность блокировки аккаунта. В этом плане гораздо проще и удобней использовать букмарклет и не сочинять очередной парсер. Вот JavaScript код моего букмарклета, который я назвал Export WordStat (EWS):

var win = window.open("", "", "width=300,height=500,resizable=0,scrollbars=1,status=0,toolbar=0"),
  tables = document.getElementsByClassName("b-word-statistics__table");
if (tables.length > 0) {
  win.document.writeln("<pre>");
  for ( i=0; i<tables.length; i++ ) {
    if ( i>0 ) win.document.write("\n");
    win.document.writeln("<b>Table #"+ i +"</b>");
    var table = tables[i],
      trs = table.getElementsByClassName("b-word-statistics__tr");
    if (trs.length > 0) {
      for ( j=0; j<trs.length; j++ ) {
        var tr = trs[j],
          phrase = tr.getElementsByClassName("b-phrase-link__link"),
          number = tr.getElementsByClassName("b-word-statistics__td-number");
        if ( phrase.length > 0 && number.length > 0 ) {
          phrase = (phrase[0].textContent ? phrase[0].textContent : phrase[0].innerText).replace(/\+/g, "");
          number = (number[0].textContent ? number[0].textContent : number[0].innerText).replace(new RegExp(String.fromCharCode(160), "g"), "");
          win.document.writeln("\"" + phrase + "\";" + number);
        }
      }
    }
  }
  win.document.writeln("<pre>");
}

Как Вы видите, результат будет выводиться в открывающемся окне (popup) и представлять собой данные таблиц в формате CSV, заточенный под MS Excel.

Примечательно здесь и наличие фильтрации данных: в ключевых словах убирается знак плюс (+), а в количестве показов – мнемоника пробела ( ).

Как использовать букмаркелет экспорта?

  1. Перенесите ссылку: EWS – на панель закладок Вашего браузера. Просто наведите курсор на ссылку нажмите левую кнопку мыши и удерживая её (!) тащите на панель закладок, отпускаем кнопку.
  2. Заходим на страницу подбора слов в Яндекс, вводим ключевое слово и жмём кнопку «Подобрать».
  3. После вывода результата, кликаем закладку EWS на панели закладок браузера.
  4. Выделяем и копируем нужные данные в открывшемся окне браузера.
  5. Открываем тот же блокнот и вставляем (Ctrl+V) скопированные данные.
  6. Получившееся, сохраняем (Ctrl+S) как файл с расширением .csv в кодировке ANSI (в блокноте, по умолчанию).
  7. Открываем сохранённый файл в MS Excel.

Для наглядности записал видео, изложенных выше действий.

Процедура может показаться несколько длительной, но ничего сложного здесь нет, всё удобно, практично и без рисков. На этом у меня всё. Спасибо за внимание. Удачи!

Короткая ссылка: http://goo.gl/YnxAZ7