[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как правилно парсить http://yandex.ru
azadlezgi
Здравствуйте

он нормально работал а щас перестал работать, помогите найти ошибку!


$query=$_GET['t'];

// $query = iconv('windows-1251', 'utf-8', strtolower($query));
$url = "http://yandex.ru/yandsearch?text=".urlencode($query)."&lr=2";
$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_ahgXI XDZ-3EAqCx5Nfdnl4SSdbSbfPeOJCprMor9M0eB8hpEVX1;');
$html = curl_exec($ch);
print $html;
curl_close($ch);

preg_match_all('/<b class=\"b-serp-item__number\">(.*)<\/b><a class/', $html, $return);

foreach ( $return[1] as $k=>$v ) {
echo '<li>'.$v.' - '.$return[2][$k].'</li>';
}


почему он перестал работать?

зарание спасибо



Спустя 16 минут, 29 секунд (19.06.2012 - 14:22) Игорь_Vasinsky написал(а):
чёт я не понял - он чё тупо нижную пагинацию списком выводит?

Спустя 6 минут, 17 секунд (19.06.2012 - 14:28) azadlezgi написал(а):
да да! если комментировать print $html; должен нормально работать он работал сам себе перестал работать! ohmy.gif

Спустя 2 минуты, 23 секунды (19.06.2012 - 14:31) Игорь_Vasinsky написал(а):
всё равно не понял смысла. ну вот поправил паттерн

$query='так-так';

// $query = iconv('windows-1251', 'utf-8', strtolower($query));
$url = "http://yandex.ru/yandsearch?text=".urlencode($query)."&lr=2";
$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_ahgXI XDZ-3EAqCx5Nfdnl4SSdbSbfPeOJCprMor9M0eB8hpEVX1;');
$html = curl_exec($ch);
print $html;
curl_close($ch);

preg_match_all('#<b class\=\"b\-serp\-item__number\">(.*)</b><a class#isU', $html, $return);

foreach ( $return[1] as $k=>$v ) {
echo '<li>'.$v.' - '.$return[2][$k].'</li>';
}

Спустя 1 минута, 51 секунда (19.06.2012 - 14:32) azadlezgi написал(а):

думаю это что то от CURLOPT_COOKIE, 'fuid01=4b55eb3819e45ffc.GHz1qZGVLdiellfrdaV8oOurD-eyAQLruoiXkgwQlajZVIiK72GT1sl3vBlpr8MCD-dfUUrA7hZR_ahgXI XDZ-3EAqCx5Nfdnl4SSdbSbfPeOJCprMor9M0eB8hpEVX1;') зависит!


это КУКИ от яндекс вордстат аможет быть такого у поисковой система яндекса какой то своя КУКИ есть

Спустя 2 минуты, 9 секунд (19.06.2012 - 14:35) azadlezgi написал(а):
у меня стоит такая задание

Написать сервис проверки позиций сайта в яндексе
входные данные:
- адрес сайта
- ключевые запросы
После проверки вывод позиций сайта по заданным запросам
И уведомление на мою эл. почту. с адресом сайта который проверяли.


я это хочу сделать но не как не получается!

Спустя 3 минуты, 8 секунд (19.06.2012 - 14:38) Игорь_Vasinsky написал(а):
а для чё там куки??? чтоб не спалиться ботом? biggrin.gif


Цитата
Написать сервис проверки позиций сайта в яндексе
входные данные:
- адрес сайта
- ключевые запросы
После проверки вывод позиций сайта по заданным запросам
И уведомление на мою эл. почту. с адресом сайта который проверяли.


твоего скрипта не достаточно.

твой скрипт собрал тока первые 10 позиций. и ты даже ни как в нём не проверил есть ли сайт или нет.

для начала пойдёт, но меня например интересовали первые 50 позиций, а это нужно по 5 страницам поиска пробежать и собрать не тока номера позиций, но и урл и потом сверить и узнать позицию.

Спустя 7 минут, 41 секунда (19.06.2012 - 14:45) azadlezgi написал(а):
да да !
даже я думаю уже мне спалили! huh.gif

я ещё не докончил скрипт хотел туда добавит "Глубину и проверит есть ли сайт в списке" но он перестал парсить
вот он тут стоит под этот ссылкой http://artlinespb.ru/positionsite/

Спустя 28 секунд (19.06.2012 - 14:46) Игорь_Vasinsky написал(а):
вот смотри - есть список доменов с позициями по выдачи для первой десятки

$query='так-так';

// $query = iconv('windows-1251', 'utf-8', strtolower($query));
$url = "http://yandex.ru/yandsearch?text=".urlencode($query)."&lr=2";
$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_ahgXI XDZ-3EAqCx5Nfdnl4SSdbSbfPeOJCprMor9M0eB8hpEVX1;');
$html = curl_exec($ch);
#print $html;
curl_close($ch);

preg_match_all('#<b class\=\"b\-serp\-item__number">.*</b><a class=\"b\-serp\-item__title\-link\" href=\"(.*)\" onmousedown#isU', $html, $return);

foreach($return[1] as $key=>$value)
{
$url = parse_url($value);
echo ($key+1).' : '.$url['scheme'].'://'.$url['host'].'<br />';

}


Спустя 34 секунды (19.06.2012 - 14:46) Игорь_Vasinsky написал(а):
результат

1 : http://taktaktak.ru
2 : http://taktaktak.ru
3 : http://tak-tak.rutube.ru
4 : http://www.zaycev.net
5 : http://vk.com
6 : http://video.mail.ru
7 : http://mp3fishki.net
8 : http://www.badaclub.ru
9 : http://www.sentido.ru
10 : http://mp3impulse.ru

Спустя 2 минуты, 27 секунд (19.06.2012 - 14:49) Игорь_Vasinsky написал(а):
для последующих 5ти страниц ссылки для парсинга такого виды


http://yandex.ru/yandsearch?p=1&text=так-так&lr=172


http://yandex.ru/yandsearch?p=2&text=так-так&lr=172

и т.д.

Спустя 3 минуты, 59 секунд (19.06.2012 - 14:53) azadlezgi написал(а):
Проблема в том что у меня етого резултата не выдоёт tongue.gif

вот посматри, я твой код добавил сюда http://artlinespb.ru/positionsite/ проверь пожалуйста там у тебя все работает ?? unsure.gif

Спустя 4 минуты, 48 секунд (19.06.2012 - 14:58) Игорь_Vasinsky написал(а):
в начале скрипта поставь

error_reporting(E_ALL);


будут ошибки?

раскомментируй

print $html;


есть страница яши?

Спустя 3 минуты, 6 секунд (19.06.2012 - 15:01) azadlezgi написал(а):
я это код на другой домена поставил все чётка работает blink.gif
а почему там не работает?

тут работает http://art.azadhost.ru/ huh.gif

Спустя 3 минуты, 51 секунда (19.06.2012 - 15:05) azadlezgi написал(а):
все равно там не работает! sad.gif

Спустя 4 минуты, 59 секунд (19.06.2012 - 15:10) Игорь_Vasinsky написал(а):
твой домен видимо яша спалил)

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

Спустя 8 минут, 19 секунд (19.06.2012 - 15:18) azadlezgi написал(а):
Опят таки спасибо огромное скрипт 100% работает наверно мне спалили!

$query='так-так';

// $query = iconv('windows-1251', 'utf-8', strtolower($query));
$url = "http://yandex.ru/yandsearch?text=".urlencode($query)."&lr=2";
$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_ahgXI XDZ-3EAqCx5Nfdnl4SSdbSbfPeOJCprMor9M0eB8hpEVX1;');
$html = curl_exec($ch);
#print $html;
curl_close($ch);

preg_match_all('#<b class\=\"b\-serp\-item__number">.*</b><a class=\"b\-serp\-item__title\-link\" href=\"(.*)\" onmousedown#isU', $html, $return);

foreach($return[1] as $key=>$value)
{
$url = parse_url($value);
echo ($key+1).' : '.$url['scheme'].'://'.$url['host'].'<br />';

}

Спустя 2 минуты, 21 секунда (19.06.2012 - 15:20) azadlezgi написал(а):
как это не понял ГУГл парсить или там что-то по другому Яша надо парсить?

Спустя 8 минут, 46 секунд (19.06.2012 - 15:29) Игорь_Vasinsky написал(а):
так погоди.. это опять же тока мониторинг 10ки яши по запросу.

тебе ещё дописать малость - если домен есть в массиве то вывести ключ... эх..


$query='так-так';
$domen = 'http://vk.com';

// $query = iconv('windows-1251', 'utf-8', strtolower($query));
$url = "http://yandex.ru/yandsearch?text=".urlencode($query)."&lr=2";
$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_ahgXI XDZ-3EAqCx5Nfdnl4SSdbSbfPeOJCprMor9M0eB8hpEVX1;');
$html = curl_exec($ch);
#print $html;
curl_close($ch);

preg_match_all('#<b class\=\"b\-serp\-item__number">.*</b><a class=\"b\-serp\-item__title\-link\" href=\"(.*)\" onmousedown#isU', $html, $return);

#echo '<pre>' . print_r($return[1], 1) . '</pre>';

$ten = array();

foreach($return[1] as $key=>$value)
{
$url = parse_url($value);
echo ($key+1).' : '.$url['scheme'].'://'.$url['host'].'<br />';
#echo '<pre>' . print_r(parse_url($value), 1) . '</pre>';
$ten[$key] = $url['scheme'].'://'.$url['host'];
}

if(in_array($domen, $ten))
{
foreach($ten as $pos=>$link)
if($domen == $link)
echo 'Ключевой запрос: '.$query.' домен: '.$link.' позиция: '.($pos+1).'<br />';
}


Ключевой запрос: так-так домен: http://vk.com позиция: 5




для Гугла вот разбирай, под себя переделывай

    $find = 'slovo';

$url = 'http://www.google.com/xhtml?q='.$find.'&start=0&sa=N';
$url1 = 'http://www.google.com/xhtml?q='.$find.'&start=10&sa=N';
$url2 = 'http://www.google.com/xhtml?q='.$find.'&start=20&sa=N';
$url3 = 'http://www.google.com/xhtml?q='.$find.'&start=30&sa=N';
$url4 = 'http://www.google.com/xhtml?q='.$find.'&start=40&sa=N';
$url5 = 'http://www.google.com/xhtml?q='.$find.'&start=50&sa=N';

for($i=0; $i<=5; $i++)
{
$page = @file_get_contents('http://www.google.com/xhtml?q='.$find.'&start='.$i.'0&sa=N');

preg_match_all('#<a class="p" href="(.*)" >(.*)</a>#iusU', $page, $data[]);

for($j=0; $j<11; $j++)
{
if($data[$i][2][$j] != '')
$result[] = $data[$i][2][$j]."|||".$data[$i][1][$j];
}
}


#echo '<pre>' . print_r($result, 1) . '</pre>';

$result = array_map('strip_tags', $result);
echo '<h1>sdsdsd</h1>';
foreach($result as $key=>$sites)
{
$data = explode('|||', $sites);
$url = explode('rd=1&u=', $data[1]);
#echo '<pre>' . print_r($url, 1) . '</pre>';

echo ($key+1).'. '.$data[0].'<br />';
echo '<a href="'.urldecode($url[1]).'">'.urldecode($url[1]).'</a><br />';
}
?>

Спустя 15 минут, 25 секунд (19.06.2012 - 15:44) azadlezgi написал(а):
всё таки Яща надо! huh.gif

а что делат чтобы замаскировать Домен Яша его не смог спалит?

у меня уже второй домен тоже спалили dry.gif

Спустя 5 минут, 18 секунд (19.06.2012 - 15:50) azadlezgi написал(а):
я месте его другой КУК поставил он заработал но опять сдохла

Цитата
curl_setopt ($ch, CURLOPT_COOKIE, 'fuid01=4b55eb3819e45ffc.GHz1qZGVLdiellfrdaV8oOurD-eyAQLruoiXkgwQlajZVIiK72GT1sl3vBlpr8MCD-dfUUrA7hZR_ahgXI   XDZ-3EAqCx5Nfdnl4SSdbSbfPeOJCprMor9M0eB8hpEVX1;');


что-то придумать КУКки само себе сгенерировал или как то так rolleyes.gif

Спустя 12 минут, 55 секунд (19.06.2012 - 16:03) azadlezgi написал(а):
на сколько реально туда Реферрер добавит ?

Цитата
curl_setopt ( $ch, CURLOPT_REFERER, 'http://www.yandex.ru/' );


расскажите пожалуйста!

Спустя 1 час, 12 минут, 15 секунд (19.06.2012 - 17:15) Игорь_Vasinsky написал(а):
хранишь массив реферов и рандомо достаёшь и подставляешь, но сдаётся мне тут прокси с курлом юзать нужно, причём пачку.


_____________
Купить хостинг для размещения сайтов

if ($naciya=="Lezgin") {
echo "Лезгин";
} else {
echo "все ровно Лезгин :)";
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.