Парсер wordstat.yandex

Тема в разделе "PHP", создана пользователем o_nix, 1 ноя 2010.

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

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    PHP:
    <?
    /*   $text = iconv('WINDOWS-1251','UTF-8', "http://wordstat.yandex.ru/?cmd=words&page=1&text=Adobe+photosho&geo=&text_geo=&captcha_id=10GSy59XzpC28LQD7EptZV8dSr5sf6tw&captcha_val=078737");  
        $yandex = file_get_contents($text);
    */    
      
    $agent 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7'
      
    $header[] = "Accept: text/html;q=0.9, text/plain;q=0.8, image/png, */*;q=0.5" 
      
    $header[] = "Accept_charset: windows-1251, utf-8, utf-16;q=0.6, *;q=0.1"
      
    $header[] = "Accept_encoding: identity"
      
    $header[] = "Accept_language: en-us,en;q=0.5"
      
    $header[] = "Connection: close"
      
    $header[] = "Cache-Control: no-store, no-cache, must-revalidate"
      
    $header[] = "Keep_alive: 300"
      
    $header[] = "Expires: Thu, 01 Jan 1970 00:00:01 GMT"

        
    $url=iconv('WINDOWS-1251','UTF-8''http://wordstat.yandex.ru/?cmd=words&page=1&text=nulled&geo=&text_geo=&captcha_id=10GSy59XzpC28LQD7EptZV8dSr5sf6tw&captcha_val=078737');
      
    $ch curl_init();  
      
    curl_setopt($chCURLOPT_URL,$url);  
      
    curl_setopt($chCURLOPT_HEADER1); 
      
    curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
      
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);  
      
    curl_setopt($chCURLOPT_TIMEOUT30); 
      
    curl_setopt ($chCURLOPT_SSL_VERIFYPEERFALSE);  
      
    curl_setopt($chCURLOPT_POST1); 
      
    curl_setopt $ch CURLOPT_USERAGENT $agent); 
      
    curl_setopt $ch CURLOPT_HTTPHEADER $header); 
      
    curl_setopt($chCURLOPT_COOKIEJAR'cookie.txt'); 
      
    curl_setopt($chCURLOPT_COOKIEFILE'cookie.txt'); 
      
    curl_setopt ($chCURLOPT_COOKIE'fuid01=4cbfe1f5027aecdc.J95nkLHISJXWOO3AkIcknGspT8tMmVoRbcupajczXCz2enqcSgxmE7c1v-oVXjZGJoK2opM3Yq3ineG4gDZHltJDV91mQylc1m2cIWszqCdq34q9hIUQ_khTL5a_BcWe');
    //  curl_setopt ($ch, CURLOPT_COOKIE, 'yandexuid=1405208511288599201');
      
    $text curl_exec($ch); 
      
    curl_close($ch);    
      
      echo 
    $text;

    ?>
    капчу обходит но почемуто не вставляет поисковую фразу в форму
    если перейти по томуже адресу браузером работает а курлом нет ...
    Как бороться ?

    P.S.
    :D блин час мучался - по разному запросы задавал искал гдебы ещё спарсить ...
    а то что стока лишняя осталась не заметил :D
     
  2. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    curl_setopt($ch, CURLOPT_POST, 1);
    - это тут никаким боком, идёт GET запрос
    :)
     
    o_nix нравится это.
  3. autos

    autos

    Регистр.:
    14 июл 2007
    Сообщения:
    189
    Симпатии:
    48
    дальше можно распарсить текст

    PHP:
    $pattern '/<table border="0" cellpadding="5" cellspacing="0" width="100%">(.*?)<\/table>/is';
    preg_match_all($pattern$text$outPREG_SET_ORDER);

    $out2=$out[0][0];

    $pattern3 '/<a href=".*">(.*)<\/a>/iU';
    preg_match_all($pattern3$out2$out3PREG_SET_ORDER);

    foreach (
    $out3 as $key=>$value) {
      
    $val iconv('utf-8''windows-1251'$value[1]);
      echo 
    $val.'<br>';
    }

    на выходе получаем в каждой строке по слову