Парсер wordstat.yandex.ru
Опубликовано 9 февраля, 2009 в PHPИногда пригождается. Публиковал функцию на серче, потом снова потерял. Увековечу ка я ее. Итак, функции передается параметром ключевой запрос, позвращается количество запросов в месяц по wordstat.yandex.ru.
<?php
function wordstat($query) {
$query = urlencode($query);
$url = "http://wordstat.yandex.ru/advq?rpt=ppc&key=&shw=1&tm=&checkboxes=&text=$query®ions_text=%C2%F1%E5®ions=";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec($ch);
curl_close($ch);
preg_match_all('/<td\salign=\"right\">(.*)<\/td>/Usi', $html, $return);
if(isset($return[1][2]))
return $return[1][2];
else
return '0';
}
echo wordstat('Артур Пирожков');
?>
Добавлено много времени спустя:
Яндекс что-то подкрутил в вордстате, URL теперь другие стали + UTF-8 необходим в том же URL. Вот новая версия:
<?php
function wordstat($query) {
$query = iconv('windows-1251', 'utf-8', strtolower($query));
$url = "http://wordstat.yandex.ru/?cmd=words&geo=&page=1&text=".urlencode($query)."&text_geo=%D0%92%D1%81%D0%B5";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec($ch);
curl_close($ch);
preg_match_all('/<td\salign=\"right\">(.*)<\/td>/Usi', $html, $return);
if(isset($return[1][2]))
return $return[1][2];
else
return '0';
}
echo wordstat('Артур Пирожков');
?>
Комментариев: 12. Обязательно оставьте свой!
То что искал! Спасибо!
Не совсем понял… А как передавать в скрипт ключевую фразу, для запроса её из Вордстат?!
Артур пирожков в последней строке – это фраза.
моя реализация парсера
Алгоритм поменялся
У меня почему то не работает скрипт на новом хостинге
Скрипт неактуален, Яндекс новый алгоритмы защиты ввел.
Как время появится – перепишу.
curl_setopt ($ch, CURLOPT_COOKIE, ‘fuid01=4b55eb3819e45ffc.GHz1qZGVLdiellfrdaV8oOurD-eyAQLruoiXkgwQlajZVIiK72GT1sl3vBlpr8MCD-dfUUrA7hZR_ahgXIXDZ-3EAqCx5Nfdnl4SSdbSbfPeOJCprMor9M0eB8hpEVX1;’);
И норм
Не работает, на экране «0″ (ноль) ((((((
совсем не понял… =(((
Вот так работает:
([0-9]*)
function wordstat($query) {
$query = iconv(‘windows-1251′, ‘utf-8′, strtolower($query));
$url = «http://wordstat.yandex.ru/?cmd=words&geo=&page=1&text=».urlencode($query).»&text_geo=%D0%92%D1%81%D0%B5″;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, «Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)»);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIE, ‘fuid01=4b55eb3819e45ffc.GHz1qZGVLdiellfrdaV8oOurD-eyAQLruoiXkgwQlajZVIiK72GT1sl3vBlpr8MCD-dfUUrA7hZR_ahgXIXDZ-3EAqCx5Nfdnl4SSdbSbfPeOJCprMor9M0eB8hpEVX1;’);
$html = curl_exec($ch);
//print $html;
curl_close($ch);
preg_match_all(«/right-td\»>([0-9]*)</Ui", $html, $return);
if(isset($return[1][0]))
return $return[1][0];
else
return '0';
}
echo wordstat('Артур Пирожков');