Простой парсер google trends
March 14, 2008Вот кусочек из моего php скрипта, который парсит гугл трендс
//Trends Parsing
$trends_url = ‘http://www.google.com/trends/hottrends/atom/hourly‘;
$trends = file_get_contents($trends_url);
$trends = html_entity_decode(htmlentities($trends, ENT_COMPAT, ‘UTF-8′));
preg_match_all("/<a href=\"[^>]*>(.*?)<\/a>/is", $trends, $kw, PREG_PATTERN_ORDER);
На выходе получаем массив $kw, с которым уже можно что-нить химичить. У меня, например эти тренды идут дальше на парсинг контента по соответствующим кейвордам из google blog search, technorati, сниппеты google и msn и из них потом формируется пост в блог.
Например, парсим сниппеты гугла таким образом:
//Google Serps Parsing
$google_request = ‘http://www.google.com/ie?hl=en&num=‘.$count.’&
start=0&lr=&q=’.urlencode(trim($kw[$j]));
$google_pattern = ‘/<a title="(.*)" href=(.*)>(.*)<\/a>/isU’;
$google_result = file_get_contents($google_request);
$google_result = html_entity_decode(htmlentities($google_result, ENT_QUOTES, ‘UTF-8′));
$google_result = str_replace("’", "’", $google_result);
$google_result = str_replace(" …", ".", $google_result);
$google_result = str_replace("…", ".", $google_result);
$google_result = str_replace(" | ", ", ", $google_result);
$google_result = str_replace("’", "’", $google_result);
$google_result = str_replace("#39;", "’", $google_result);
$google_result = str_replace("·", "", $google_result);
$google_result = str_replace("&", "and", $google_result);
$google_result = str_replace("amp;", "", $google_result);
$google_result = str_replace("middot;", "", $google_result);
$google_result = str_replace(""", "’", $google_result);
preg_match_all ($google_pattern, $google_result, $google_data);
$google_header = implode(". ", $google_data[3]);
$google_snippet = implode(" ", $google_data[1]);
Сниппеты Live/MSN вот так
//MSN Serps Parsing
$msn_url = ‘http://search.msn.com/results.aspx?format=rss&count=‘.$count.’&
q=’.urlencode(trim($kw[$j]));
$msn_request = file_get_contents($msn_url);
$msn_request = html_entity_decode(htmlentities($msn_request, ENT_QUOTES, ‘UTF-8′));
$msn_request = str_replace(" …", " ", $msn_request);
$msn_request = str_replace("Live Search: ", "", $msn_request);
$msn_request = str_replace("#39;", "’", $msn_request);
$msn_request = str_replace("·", "", $msn_request);
$msn_request = str_replace("&", "and", $msn_request);
$msn_request = str_replace("amp;", "", $msn_request);
$msn_request = str_replace("middot;", "", $msn_request);
$msn_request = str_replace(""", "’", $msn_request);
preg_match_all("/<title[^>]*>(.*?)<\/title>/is", $msn_request, $msn_title, PREG_PATTERN_ORDER);
preg_match_all("/<description[^>]*>(.*?)<\/description>/is", $msn_request, $msn_desc, PREG_PATTERN_ORDER);
$msn_header = implode(". ", $msn_title[1]);
$msn_snippet = implode("
", $msn_desc[1]);
В итоге получим тексты сниппетов гугла/мсн и заголовки из выдачи, немного очищенные от мусора. Реализация возможно не фонтан, но все же рабочая.
Посидев с php учебником день-два можно наваять неплохой сборщик контента по трендсам
Если очень лениво, пишите в каменты может выложу готовый скрипт.
———————–
Скрипт, который парсит google trends + тексты из сниппетов и выводит все это на страницу

