[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: парсер выдачи Yandex
vergin
при попытке получить контент выдачи Yandex - получаю http код ответа 302, хотя если взять строку запроса и вставить вручную в браузер - Yandex дает нормальный ответ
функция получения контента:


function get_content($hostname, $path)
{
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);

if (!$fp)
{
echo "$errstr($errno)<br />\n";
}

else
{
$authorization=base64_encode("login:password");
$headers = "GET $path HTTP/1.1\r\n";
$headers .="Basic-Authorization: $authorization\r\n";
$headers .= "Host: $hostname\r\n";
$headers .= "Connection: Close\r\n\r\n";
fwrite($fp, $headers);
while (!feof($fp))
{
$line .= fgets($fp, 1024);
}
fclose ($fp);
return $line;

}
}



использование функции:


$query = 'complex numbers';
$path = 'http://www.yandex.com/yandsearch?text='.$query.'&lr=143';
$host = 'www.yandex.com';
$content = get_content($host, $path);
echo htmlspecialchars($content);


при запросе к Гуглу или Yahoo - все работает хорошо

$path = 'http://www.google.com/search?hl=en&q='.$query;
$host = 'www.google.com';

$path = 'http://search.yahoo.com/search?p='.$query.'&toggle=1&ei=UTF';
$host = 'www.search.yahoo.com';




Спустя 13 минут, 35 секунд (15.11.2010 - 15:01) netruxa написал(а):
302 - это наверно редирект на капчу?
задержку между запросами 5 сек поставьте

а вообще у яндекса есть xml выдача, 1000 запросов в сутки можно задавать

Спустя 3 минуты (15.11.2010 - 15:04) vergin написал(а):
> 302 - это наверно редирект на капчу?
У Гугла - да, у Яндекса вроде-бы нету такого

>а вообще у яндекса есть xml выдача, 1000 запросов в сутки можно задавать
я не получаю ответ ни на однин из них )) т.е. сразу идет 302 ответ

Спустя 3 минуты, 17 секунд (15.11.2010 - 15:07) netruxa написал(а):
есть у них капча. они на все свои проекты вешают, чтоб их не парсили smile.gif
но все равно парсим. и выдачу и вордстат

Спустя 2 минуты, 52 секунды (15.11.2010 - 15:10) vergin написал(а):
даже если капча и есть, то редирект на нее идет же не сразу, а после нескольких успешных запросов (по крайней мере так у Гугла). Запрос вроде-бы не похож на тот, который зачастую используют для парсинга линков

Спустя 30 минут, 53 секунды (15.11.2010 - 15:41) SlavaFr написал(а):
а ты не догадываешся почему не получается?
может они не хотят, чтоб ты в таком виде их поиск использовал, так как они защет рекламы на своем собственном сайте живут. А ты просто так хочеш ихную работу себе присвоить. Делай так как они предлогают http://api.yandex.ru/
или оставь дурную затею, так как они через неделю определят, что это с твоего сайта запросы идут и обротятся к твоему хостеру через адвоката.

Спустя 1 час, 21 минута, 41 секунда (15.11.2010 - 17:02) FatCat написал(а):
Я пробивал защиту яндекса от парсинга, там 3 уровня защиты. С наскоку не пробить, там всерьез покопаться потребуется.

Готовый код выкладывать не буду: чем меньше народу будет парсить, тем дольше яндекс не зачешется, и тем дольше я сам смогу парсить без проблем.

Спустя 3 минуты, 41 секунда (15.11.2010 - 17:06) FatCat написал(а):
Цитата (SlavaFr @ 15.11.2010 - 16:41)
Делай так как они предлогают http://api.yandex.ru/

1000 запросов в сутки с одного айпишника - курам на смех.
Один хороший проект продвижения по низкочастотникам - это десятки тысяч НЧ с разбавлениями. Через апи будешь 2 месяца чекать один сайт; а за 2 месяца конкуренция изменится и прочеканное будет годиться только в треш.

Спустя 2 минуты, 11 секунд (15.11.2010 - 17:08) vergin написал(а):
готовый код и не прошу выкладывать, обьясни хотя бы, что это за 3 уровня защиты у Яши? И как Яша определяет, что запрос был отправлен с PHP скрипта, а не как обычно, через браузер?

Спустя 4 минуты, 47 секунд (15.11.2010 - 17:13) FatCat написал(а):
Цитата (vergin @ 15.11.2010 - 18:08)
что это за 3 уровня защиты у Яши?

1. Куки.
2. Частота запросов.
3. Постоянство интервала времени между запросами.

Спустя 35 секунд (15.11.2010 - 17:14) netruxa написал(а):
Цитата (FatCat @ 15.11.2010 - 14:06)
Цитата (SlavaFr @ 15.11.2010 - 16:41)
Делай так как они предлогают http://api.yandex.ru/

1000 запросов в сутки с одного айпишника - курам на смех.
Один хороший проект продвижения по низкочастотникам - это десятки тысяч НЧ с разбавлениями. Через апи будешь 2 месяца чекать один сайт; а за 2 месяца конкуренция изменится и прочеканное будет годиться только в треш.

Есть сервисы, предоставляющие прокси для парсинга xml Yandexа

Спустя 1 минута, 10 секунд (15.11.2010 - 17:15) vergin написал(а):
2 и 3 думаю смогу решить, а насчет куки можешь подетальней?

Спустя 51 минута, 48 секунд (15.11.2010 - 18:06) FatCat написал(а):
Цитата (vergin @ 15.11.2010 - 18:15)
насчет куки можешь подетальней?

Тебя же посылали за кукой:
Цитата (vergin @ 15.11.2010 - 15:47)
получаю http код ответа 302

Посмотри куда ведет редирект, увидишь kiks.yandex.ru - там у Яши ларек продажи печенья.

Спустя 16 часов, 59 минут, 47 секунд (16.11.2010 - 11:06) vergin написал(а):

string 'HTTP/1.0 301 Moved Permanently
Server: nginx
Date: Tue, 16 Nov 2010 08:04:16 GMT
Content-Type: text/html
Content-Length: 178
Location: http://yandex.com/yandsearch?text=forums&lr=143
X-Cache: MISS from ....
X-Cache: MISS from ....
Via: .....
Proxy-Connection: close


после установки задержки выполнения скрипта - стал получать 301 код ответа и в нем не вижу я редиректа

Спустя 27 минут, 9 секунд (16.11.2010 - 11:33) netruxa написал(а):
вы вкурсе, что на yandex.com и yandex.ru разная выдача?
yandex.com не парсил, поэтому не вкурсе что за 301 редирект

Спустя 7 минут, 10 секунд (16.11.2010 - 11:41) vergin написал(а):
да, вкурсе, но я пробовал как .com, так и .ru, результат один и тот же

Спустя 1 минута, 45 секунд (16.11.2010 - 11:42) Nikitian написал(а):
Location: http://yandex.com/yandsearch?text=forums&lr=143

Это ли не адрес редиректа?

Спустя 2 минуты, 52 секунды (16.11.2010 - 11:45) vergin написал(а):
адрес редиректа совпадает с адресом запроса? )) потому что http://yandex.com/yandsearch?text=forums&lr=143 - это URL запроса на выдачу Яхе

Спустя 5 дней, 22 часа, 52 минуты, 9 секунд (22.11.2010 - 10:37) vergin написал(а):
FatCat:
Как Яша определяет, откуда идет запрос, с моего PHP-скрипта или я вручную, через строку запроса браузера, осуществляю запрос?
Быстрый ответ:

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