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

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 20 фев 2012.

Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    740
    Симпатии:
    226
    Здравствуйте.
    Пытаюсь написать парсер Яндекс, а он меня определяет как робота.
    Вот код:
    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($chCURLOPT_URL$url);
      
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
      
    curl_setopt($chCURLOPT_HEADER0);
      
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
      
    curl_setopt($chCURLOPT_ENCODING"gzip");
      
    curl_setopt($chCURLOPT_USERAGENT$uagent);
      
    curl_setopt($chCURLOPT_TIMEOUT120);
      
    curl_setopt($chCURLOPT_FAILONERROR1);
      
    curl_setopt($chCURLOPT_AUTOREFERER1);
      
    curl_setopt($chCURLOPT_REFERER'http://yandex.ru/yandsearch?text=zapros');
    // curl_setopt($ch, CURLOPT_ENCODING, 'gzip')
      
    curl_setopt($chCURLOPT_COOKIEJAR"cookie.txt");
      
    curl_setopt($chCURLOPT_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. ywitodenasuby

    ywitodenasuby Постоялец

    Заблокирован
    Регистр.:
    31 янв 2012
    Сообщения:
    65
    Симпатии:
    21
    Я только что опробовал ваш скрипт и все нормально он выводит результат по запросу zapros, с чего вы взяли что вы робот?)
     
  3. BaziliX

    BaziliX Постоялец

    Регистр.:
    2 авг 2007
    Сообщения:
    85
    Симпатии:
    12
    У меня тоже всё нормально. Если вылетает капча, то есть вариант пользоваться Яндекс XML там 1000 запросов на 1 ip в сутки даётся. Есть специальные хостеры дающие прокси с уже прикрученным Яндекс XML, вот пример http://globatel.ru/hosting/seohosting/
     
  4. Archey

    Archey Писатель

    Регистр.:
    6 июл 2008
    Сообщения:
    3
    Симпатии:
    0
    curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
    curl_setopt($ch, CURLOPT_COOKIEFILE,"cookie.txt");

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

    Inviseble_Demon

    Регистр.:
    11 дек 2008
    Сообщения:
    482
    Симпатии:
    350
    curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
    curl_setopt($ch, CURLOPT_COOKIEFILE,"cookie.txt");

    Укажи полные пути до печенек.