Парсер на PHP Как создать свой сайт > Вебмастеру > Создание своего сайта > Парсер Вордстата на PHP

Парсер Вордстата на PHP

Железный конь идёт на смену крестьянской лошадке.
«Золотой телёнок», Ильф и Петров.


    Итак, решил собраться и написать что-нибудь полезное. Сразу скажу, PHP я знаю, но не претендую на звание гуру и пишу, как умею. Поэтому данный опус предназначен для новичков в PHP. Он должен только натолкнуть на мысль и показать, в общем, как сделать парсер на PHP. Конкретику уже каждый допишет сам и сделает, как ему нужно.

    Нам понадобится PHP и библиотека Curl (я использую Денвер, но Curl к нему придётся прикручивать руками, как это сделать подскажет Гугл). Ещё нужен редактор с кодировкой utf-8 (c 1251 могут быть траблы), я юзаю PsPad (редакторы Seoded.ru используют EmEditor — прим. Seoded).

    Поехали.


// вбиваем ключевое слово, по которому хотим парсить
$key = “бабло”;
$key = urlencode($key);
// открываем бесконечный цикл, когда слова кончатся мы его прервём
for ($k = 0; $k > -1; $k = $k+50)
{
$url = “http://direct.yandex.ru/stat/wordsstat.pl?checkboxes=0
//перенёс строчку, сбивается разметка
&key=&pg=$k&regions=&rpt=ppc&shw=1&text=$key&tm=”;
sleep (2); // задержка в секундах, чтобы особо не палиться
// дальше функции для работы с Curl, описывать не буду каждую
// гугл в помощь
$ch = curl_init ();
curl_setopt ($ch , CURLOPT_URL , $url);
curl_setopt ($ch , CURLOPT_USERAGENT , “Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7″);
curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 );
$content = curl_exec($ch); // здесь загруженная страница
curl_close($ch);
// на всякий случай для правильной кодировки
echo “<meta http-equiv=’Content-Type’ content=’text/html; charset=utf-8′ />”;
// а вот тут самое интересное: если на странице нет точного “>следующая”
// то значит у Яшки кончился словарный запас и он нам больше нафиг не нужен
// выходим из цикла
// а если нет вхождения, то парсим дальше
if (!stristr($content,”>следующая”))
{
// preg_match_all — используем регулярные выражения и выдираем нужное
// Если не забьёте на это дело, то ОБЯЗАТЕЛЬНО разберитесь
// как они работают
// офигенно мощный и незаменимый инструмент
// $matches[1][$i] — все ключи
//$matches[2][$i] — частота слов
preg_match_all(”/<td><a href=\”.*\”>(.*)<\/a><\/td>.*<td align=\”right\”>(.*)<\/td>/isU”, $content, $matches, PREG_PATTERN_ORDER);
//выводим массив с ключами
for ($i = 0; $i < count($matches[1]); $i++)
{
echo $matches[1][$i].”<br>”;
}
echo “Все, слова кончились и выходим”;
break;
}
else
{
preg_match_all(”/<td><a href=\”.*\”>(.*)<\/a><\/td>.*<td align=\”right\”>(.*)<\/td>/isU”, $content, $matches, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($matches[1]); $i++)
{
echo $matches[1][$i].”<br>”;
}
}
}

    Если всё сделали правильно, то парсер выдаст все слова из Вордстата (Директа, многие так это называют). Плюс данного скрипта в том, что он выдирает ВСЕ СЛОВА, а не на определённую глубину. Его легко улучшить (например, добавить сохранение в файл или способность выдирать только до определённой частоты запросов). В общем, экспериментируйте, если что не понятно будет, welcome в комменты.

    P.S. Стоит ли продолжать писать про кодинг? Или у меня это выходит криво и нафиг никому не нужно?

Автор: f4llou7.


⇓ 

Поделись ссылкой на Seoded.ru с друзьями, знакомыми и собеседниками в соцсетях и на форумах! А сам сайт добавь в закладки! Так победим.

Поделиться ссылкой на эту страницу в:

Полезные ссылки:

Декрет — время для заработка Как художнику заработать без PHP

Ещё материалы по этой теме:

Всплывающая подсказка на AJAX Шрифты для Веба Восприятие информации Краткая лекция по usability Заполняем формы колёсиком мышки
основан в 2008 г. © Все права на материалы сайта Seoded.ru принадлежат Алексею Вострову.
Копирование (полное или частичное) любых материалов сайта возможно только с разрешения автора и при указании ссылки на источник.
Ослушавшихся находит и забирает Бабайка!