Букмарклет для экспорта ключевых слов из Яндекс wordstat
Честно говоря, я не совсем понимаю, почему Яндекс не хочет сделать нормальный API для своего сервиса подбора слов (wordstat). Так или иначе, но эти данные будут парситься и экспортироваться сеошниками. Для себя я создал простой букмарклет (javascript закладка браузера), который позволяет экспортировать данные Яндекс wordstat в формате CSV, о нём и поговорим.
А начну я с того, что результат подбора слов состоит из двух таблиц «что искали со словом…» и «что ещё искали люди, искавшие…», имеющие CSS-класс b-word-statistics__table
. Каждая такая таблица состоит из строк, с элементами b-phrase-link__link
(ключевое слово) и b-word-statistics__td-number
(количество показов в месяц). Наличие таковых определяет, что это не заголовок. Дальше дело техники.
Основная проблема здесь состоит в авторизации. Без неё получить доступ к статистике невозможно. К тому же есть неугомонная капча и вероятность блокировки аккаунта. В этом плане гораздо проще и удобней использовать букмарклет и не сочинять очередной парсер. Вот 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.
Примечательно здесь и наличие фильтрации данных: в ключевых словах убирается знак плюс (+
), а в количестве показов – мнемоника пробела (
).
Как использовать букмаркелет экспорта?
- Перенесите ссылку: EWS – на панель закладок Вашего браузера. Просто наведите курсор на ссылку нажмите левую кнопку мыши и удерживая её (!) тащите на панель закладок, отпускаем кнопку.
- Заходим на страницу подбора слов в Яндекс, вводим ключевое слово и жмём кнопку «Подобрать».
- После вывода результата, кликаем закладку EWS на панели закладок браузера.
- Выделяем и копируем нужные данные в открывшемся окне браузера.
- Открываем тот же блокнот и вставляем (Ctrl+V) скопированные данные.
- Получившееся, сохраняем (Ctrl+S) как файл с расширением .csv в кодировке ANSI (в блокноте, по умолчанию).
- Открываем сохранённый файл в MS Excel.
Для наглядности записал видео, изложенных выше действий.
Процедура может показаться несколько длительной, но ничего сложного здесь нет, всё удобно, практично и без рисков. На этом у меня всё. Спасибо за внимание. Удачи!
Короткая ссылка: http://goo.gl/YnxAZ7
Привет что то не работает скрипт и какая польза от него.
2Nikodim Не исключен, что могут быть проблемы с кросбраузерностью. В Google Chrome у меня всё работает. В принципе, действительно, особой надобности в таком может и не быть... ведь можно скопировать таблицу в Excel, дальше Правка > Очистить > Форматы и обычный "Найти и заменить" (Ctrl+H), чтобы (если надо) убрать плюсики. Просто вот пришла в голову такая идея, я её и реализовал :D
Как раз то что нужноб спасибо за то что поделились!
Спасибо огромное, все работает на ура :-)
Полезная штука! Спасибо
не работает ссылка
Это не ссылка, это букмарклет … её нужно перенести на панель вкладок или в закладки браузера и кликать на странице результятя wordstat. Может также быть, что используется какой-то древний браузер, я не ставил перед собой задачу обеспечивать кросбраузерность, в Chrome всё работает.
получилось! огромное спасибо за удобную вещь
Спасибо! Все работает.