Парсер яндекса

LEXAlForpostl

Мой дом здесь!
Регистрация
21 Май 2008
Сообщения
766
Реакции
228
Здравствуйте.
Пытаюсь написать парсер Яндекс, а он меня определяет как робота.
Вот код:
PHP:
function get_content ($url) {
  $uagent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.13) Gecko/20101203 MRA 5.7 (build 03789) Firefox/3.6.13";
 
  $ch = curl_init( $url );
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_ENCODING, "gzip");
  curl_setopt($ch, CURLOPT_USERAGENT, $uagent);
  curl_setopt($ch, CURLOPT_TIMEOUT, 120);
  curl_setopt($ch, CURLOPT_FAILONERROR, 1);
  curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
  curl_setopt($ch, CURLOPT_REFERER, 'http://yandex.ru/yandsearch?text=zapros');
// curl_setopt($ch, CURLOPT_ENCODING, 'gzip')
  curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
  curl_setopt($ch, CURLOPT_COOKIEFILE,"cookie.txt");
 
  $content = curl_exec( $ch );
// $err    = curl_errno( $ch );
//  $errmsg  = curl_error( $ch );
// $header  = curl_getinfo( $ch );
// curl_close( $ch );
 
 
  return $content;
}
$t1=get_content ("http://kiks.yandex.ru/fu");
 
$t2 = get_content ("http://yandex.ru/yandsearch?text=zapros&clid=46510&lr=10313");
echo $t2;
 
  • Заблокирован
  • #2
Я только что опробовал ваш скрипт и все нормально он выводит результат по запросу zapros, с чего вы взяли что вы робот?)
 
У меня тоже всё нормально. Если вылетает капча, то есть вариант пользоваться Яндекс XML там 1000 запросов на 1 ip в сутки даётся. Есть специальные хостеры дающие прокси с уже прикрученным Яндекс XML, вот пример Для просмотра ссылки Войди или Зарегистрируйся
 
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE,"cookie.txt");

проверь, получает куки от яндексе, или нет. если нет, указывай явно типа
curl_setopt ($ch, CURLOPT_COOKIE, 'PHPSESSID=aa9b3b84d7279a18226a66d48429fc95');
 
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE,"cookie.txt");

Укажи полные пути до печенек.
 
Назад
Сверху