PHP-скрипт парсера ключевых слов с LiveInternet

Feb 09, 2012 02:19


Очень давно подумывал о написании чего подобного, простого и незамысловатого. Конечно есть тот же прекрасный и удивительный Key Collector, но для меня это слишком наворочено. Встречал ещё Li Parser, он вроде даже бесплатный или там урезанная демка? В общем, у вас всегда есть выбор, а я остановился на своём LiKw - PHP-скрипт парсера ключевых слов с LiveInternet.
Принцип работы LiKw я позаимствовал у Teimos'а (ссылку на блог не даю, т.к. он заражён вирусом). Если вас заинтересовал прототип, скачать его можно тут. Мой вариант уложился в один класс и один файл likw.php. К тому же скрипт парсит ключевые слова в несколько заходов. С одной стороны, так приходится делать несколько подключений к серверу LiveInternet. С другой, скрипт не виснет из-за перегруза и постепенно наполняет файлик ключевыми словами. Работа скрипта выглядит следующим образом:



Как вы видите, придётся потыкать ссылочку Next Page до тех пор пока она не исчезнет. Ко всему прочему, я отказался от веб-интерфейса по вводу ключевых опций для работы скрипта, так что придётся прописать их в конце самого файла likw.php.
  1. $page = isset($_GET['page']) ? (int) $_GET['page'] : 1;
  2. $likw = new likw();
  3. $likw->set_sitename('http://sitename.ru/');
  4. if ( $page==1 ) $likw->set_password('12345');
  5. $likw->set_filename('sitename.txt');
  6. $likw->parse($page);
  7. $likw->the_progress();
  8. $likw->the_nextpage();
  9. $likw->close();

Разберём этот пример по строкам:
  1. На первой строке мы считывает параметр page (страница), переданный скрипту методом GET.
  2. Инициализируем класс likw и создаём одноимённую переменную объекта.
  3. Используя функцию класса set_sitename(), задаём адрес сайта без www.
  4. Если ваша статистика по поисковым фразам закрыта паролем, придётся его указать. Для этого используется функция класса set_password(). Скрипт автоматически производит авторизацию. Для того чтоб не выполнять авторизацию при каждом обращении к скрипту, я ввёл условие - производить авторизацию только если $page==1. Если же вам стрёмно указывать пароль, вы можете просто временно открыть доступ к нужным данным и удалить соответствующую строку в коде.
  5. Функция класса set_filename() позволяет указать путь и имя файла в который будут добавляться ключевые слова. Именно добавляться! В конец файла. По умолчанию, значение имени файла формируется по адресу сайта и мы получим, например: sitename_ru.txt. Так что эту опцию можно и не использовать.
  6. Функция класса parse() производит обработку данных и добавление ключевых слов в файл. Её параметром является номер страницы доступный по адресу: http://www.liveinternet.ru/stat/[sitename.ru]/queries.html?period=month&per_page=100;page=[номер страницы]. Обращаю ваше внимание на то, что берутся данные за последний месяц, а разбивка идёт по 100 ключевых слов на странице.
  7. Функции класса the_progress() выодит сообщение о выполненном действии, например: On page 12 recived 100 keywords.
  8. Функция класса the_nextpage() выводит ссылку на Next Page, адрес которой выглядит, например так: ?page=2 - т.е. вызывается тот же likw.php, но уже с соответствующим параметром, который передаётся через GET функции класса parse().
  9. Осталось лишь закрыть сооединение, использую функцию класса close().

Как вы видите, возможности моего класса достаточно обширны и вы можете экспериментировать с ним используя так и эдак.

Появилась чуть исправленная версия LiKw, которая позволяет уменьшить количество запросов авторизации, бесплатно скачать её можно тут.

P.S. Key Collector - видео обзор

image Click to view

seo, поисковики, интересное, код, статистика

Previous post Next post
Up