Нужен Парсер ключевых слов «Прямого эфира» Яндекса

X
На сайте с 23.01.2009
Offline
42
1473

Есть у кого рабочый?

Парсер ключевых слов «Прямого эфира» Яндекса YaOnAir но он не рбаотет.

ДП
На сайте с 23.11.2009
Offline
203
#1

У меня есть рабочий

23rus
На сайте с 19.02.2010
Offline
29
#2

вот только проверил, работает

http://zver777.ru/programs/15-on-air-parser-parser-pryamogo-yefira-yandeksa.html

автор zver777

[Удален]
#3
Дикий пионер:
У меня есть рабочий

Поделись, с трудящимися

X
На сайте с 23.01.2009
Offline
42
#4
internet:
Поделись, с трудящимися

присоеденяюсь

@
На сайте с 03.05.2011
Offline
10
#5

Могу поделиться базой, которую спарсил (~50мб) не бесплатно, а скриптом извините не могу.

Если кого заинтересовало - в ЛС или асеку.

Г
На сайте с 04.08.2011
Offline
0
#6

Вставил код скрипта в тег php. Не отображается :(

Гров добавил 04.08.2011 в 22:53

error_reporting(0);
set_time_limit(120);

$path='/путь/к/директории/этого/скрипта'; // настроить под себя
//$path='.';
$dir="$path/ya_stat"; // директория рядом с скриптом куда пишется результат парсинга
$flag_file="$dir/flag";
$log_file="$dir/logs";
$loging=true;

$total_time=60*1-10;
$start_time=time();
$end_time=$start_time+$total_time;
$brk=false;

if(file_exists($flag_file)){
if(time()-filemtime($flag_file)>60*3){
unlink($flag_file);
if($loging)add_logs("unlink flag file");
}else{
if($loging)add_logs("wait time");
$brk=true;
}
}

$goo=true;
while((time()<$end_time)&&!$brk){
$goo=go();
if($goo!==true)break;
sleep(25);
}

function add_logs($str){
global $log_file;
$fl=fopen($log_file,"a");
if(!$fl)return;
fwrite($fl,date("y.m.d-H:i:s")." {$str}\r\n");
fclose($fl);
}

if($goo!==true)die($goo);

function go(){
global $flag_file, $dir, $loging, $log;
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, "http://stat.yandex.ru/queries/last20.xml");
curl_setopt($ch, CURLOPT_REFERER, "http://stat.yandex.ru/queries/last20.xml");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$ip=array
(
array('123.123.123.123',"Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)"),
//array('234.234.234.234',"Opera/9.64 (Windows NT 5.1; U; MRA 5.4 (build 02652); ru) Presto/2.1.1")
//array('132.132.132.132',"Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.10 (like Gecko)")
);
// настроить IP адрес сервера или адреса если несколько
$n=rand()%count($ip);
$ip=$ip[$n];
curl_setopt($ch, CURLOPT_INTERFACE, $ip[0]);
curl_setopt($ch, CURLOPT_USERAGENT, $ip[1]);
$p = curl_exec($ch);
curl_close($ch);

if (strpos($p,'captcha.yandex.net') !== false) {
file_put_contents($flag_file,"1");
if($loging)add_logs("Error=capcha IP=".$ip[0]);
return 'capcha';
}

if (strpos($p,'<title>403</title>') !== false) {
file_put_contents($flag_file,"1");
if($loging)add_logs("Error=403 IP=".$ip[0]);
return '403';
}

if(preg_match_all("/<a href=\"http:\/\/www\.yandex\.ru\/yandsearch\?text=[^>]+>(.+?)<\/a>\s+\(([0-9]+)\)/is",$p,$regs)){
for($i=0;$i<count($regs[0]);$i++){
$words[]="{$regs[2][$i]} {$regs[1][$i]}";
}
}

if(isset($words)){
$words=implode("\r\n",$words);
$dt=getdate();
$file="$dir/{$dt['year']}-{$dt['mon']}-{$dt['mday']}.txt";
$f=fopen($file,"a");
if(!$f)die("error");
fwrite($f,$words."\r\n\r\n");
fclose($f);
}else{
if($loging)add_logs("Error=empty_text IP=".$ip[0]);
}
return true;
}

Дергать скрипт раз в минуту кроном или другим скриптом.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий