|
Парсер Вордстата на 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®ions=&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 |