За последние 24 часа нас посетили 26679 программистов и 1511 роботов. Сейчас ищут 920 программистов ...

Не парсится Яндекс - помогите!

Тема в разделе "PHP для новичков", создана пользователем Priler, 20 мар 2013.

  1. Priler

    Priler Активный пользователь

    С нами с:
    2 мар 2013
    Сообщения:
    171
    Симпатии:
    0
    Адрес:
    New-York
    Здравствуйте.
    Я хочу спарсить страничку Яндекса - http://yandex.ru/yandsearch?text=url:stihi.in.ua/proizved.p ... php&lr=213

    Юзаю такой код:
    Код (Text):
    1.  
    2. echo '<fieldset class="nice"><legend>Индексация</legend>';
    3.         $url = str_ireplace(array('http://www.','http://'),'','http://www.stihi.in.ua/proizved.php');
    4.         $ch = curl_init($url);
    5.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    6.         curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20120815 Firefox/16.0 bot');
    7.         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    8.         curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    9.         curl_setopt($ch, CURLOPT_HEADER, false);
    10.         $html = curl_exec($ch);
    11.         curl_close($ch);
    12.         preg_match('|<strong class="b-head-logo__text">(.*?)</strong>|is',$ret,$index);
    13.         preg_match('|<br>(\d*?)\&nbsp;|Uis',$index[1],$index);
    14.         $index = $index[1]>0?1:2;
    15.         if($index==1)echo'Проиндексировано';
    16.         else echo'Не проиндексировано';
    17. echo '</fieldset>';
    Но переменная $html пустая...
    Парсю другие сайт - все нормально.
    Помогите пожалуйста решить эту проблему.
    Заранее спасибо!
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    весь код-то будет или я должен гадать что тут как?
     
  3. Priler

    Priler Активный пользователь

    С нами с:
    2 мар 2013
    Сообщения:
    171
    Симпатии:
    0
    Адрес:
    New-York
    Это весь код, то есть индивидуальный кусок отделенный от всего другого
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну тогда линии 12, 13 и 14
     
  5. r3l0c

    r3l0c Активный пользователь

    С нами с:
    10 янв 2013
    Сообщения:
    453
    Симпатии:
    4
    Попробуй не курлом, а filegetcontents
     
  6. Priler

    Priler Активный пользователь

    С нами с:
    2 мар 2013
    Сообщения:
    171
    Симпатии:
    0
    Адрес:
    New-York
    Переменная $html пуста эти линии работают нормально

    Добавлено спустя 1 минуту 22 секунды:
    А ну я тут забыл поменять в теме, по идеи так:
    Код (Text):
    1.  
    2.         preg_match('|<strong class="b-head-logo__text">(.*?)</strong>|is',$html,$index);
    Но трабл не в этом, а в том, что $html пустая

    Добавлено спустя 27 секунд:
    Выкидывает как бота
     
  7. r3l0c

    r3l0c Активный пользователь

    С нами с:
    10 янв 2013
    Сообщения:
    453
    Симпатии:
    4
    Снифер заюзай, если пых на своей машине стоит. Я хз че там, я не знаком с курлом, просто привык по олдскульному отправлять запросы сокетом, формировать их тупо конкатенацией строк%).
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    отдаю как есть. скопипастил, запустил, прочитал. не моя же проблема что ты дебажить не умеешь
     
  9. Priler

    Priler Активный пользователь

    С нами с:
    2 мар 2013
    Сообщения:
    171
    Симпатии:
    0
    Адрес:
    New-York
    А блин вот я затупил, надо вот такой код заставить работать, парсить не сайт а яндекс с запросом этого сайта:
    Код (Text):
    1.  
    2. $url = 'http://yandex.ru/yandsearch?text=url:stihi.in.ua/proizved.php+|+url:www.stihi.in.ua/proizved.php&lr=213';
    Добавлено спустя 2 минуты 7 секунд:
    Заработало!
    Ура!!!!
    Странно из-за этого не работало..
    Спасибо GANZAL!!!
    И всем спасибо за помощь.
    Ура!

    Добавлено спустя 12 минут 22 секунды:
    Блин заработал и перестал работать...
    Че за фигня...
    Вот код:
    Код (Text):
    1.  
    2. echo '<fieldset class="nice"><legend>Индексация</legend>';
    3.         $url = str_ireplace(array('http://www.','http://'),'','http://www.stihi.in.ua/proizved.php');
    4.         $url = 'http://yandex.ru/yandsearch?text=url:stihi.in.ua/proizved.php+|+url:www.stihi.in.ua/proizved.php&lr=213';
    5.         $ch = curl_init($url);
    6.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    7.         curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20120815 Firefox/16.0 bot');
    8.         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    9.         curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    10.         curl_setopt($ch, CURLOPT_HEADER, false);
    11.         $html = curl_exec($ch);
    12.         curl_close($ch);
    13.         preg_match('|<strong class="b-head-logo__text">(.*?)</strong>|is',$ret,$index);
    14.         preg_match('|<br>(\d*?)\&nbsp;|Uis',$index[1],$index);
    15.         $index = $index[1]>0?1:2;
    16.         if($index==1)echo'Проиндексировано';
    17.         else echo'Не проиндексировано';
    18. echo '</fieldset>';
    Проверьте пожалуйста кто-нибудь, это у меня он может быть только гонит