Проблема с сUrl

Discussion in 'PHP' started by Legion342, 17 Aug 2009.

  1. Legion342

    Legion342 New Member

    Joined:
    19 Oct 2006
    Messages:
    23
    Likes Received:
    1
    Reputations:
    0
    была задача парсить скрытый контент с одного сайта для этого использовался cUrl некоторое времяпарсен работал нормально через прокси обращалсяк нужной страницы передавал куки и забирал нужный контент, через некоторое время перестал работать с нужными куками хотя если просто открываешь страницу с теми куками то все нормально

    вот часть кода которая отвечает за загрузку страницы
    PHP:
    $url="тут адрес страницы";
    $ua 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 WebMoney Advisor';
    $ch=curl_init(); 
    curl_setopt($chCURLOPT_URL$url); 
    curl_setopt($chCURLOPT_HEADER1); 
    curl_setopt($chCURLOPT_USERAGENT$ua); 
    curl_setopt($chCURLOPT_TIMEOUT30); 
    curl_setopt($chCURLOPT_COOKIE"тут куки"); 
    $ret curl_setopt($chCURLOPT_PROXY'прокси'); 
    //$ret = curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'login:password'); 
    //$ret = curl_setopt($ch, CURLOPT_TIMEOUT,        30); 
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue); 
    $string1=curl_exec($ch); 

    может кто подскажет в чем может быть причина
     
  2. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    попробуй добавить

    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
     
    1 person likes this.
  3. Legion342

    Legion342 New Member

    Joined:
    19 Oct 2006
    Messages:
    23
    Likes Received:
    1
    Reputations:
    0
    нет не помогло(

    еще добавил строчку

    curl_setopt($ch, CURLOPT_REFERER, "http://www.google.com");
     
  4. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    tamper data и смотри, что шлет, какой рефер и т.д.
     
  5. Legion342

    Legion342 New Member

    Joined:
    19 Oct 2006
    Messages:
    23
    Likes Received:
    1
    Reputations:
    0
    шлет все тоже самое что и я добавил только заголвки еще в код

    PHP:
    $this1->headers[] = 'Host: http://www.адрес того сайта';
      
    $this1->headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';  
    $this1->headers[] = 'Accept-Language: en-us,en;q=0.7,ru;q=0.3'
     
    $this1->headers[] = 'Accept-Encoding: gzip,deflate';
      
    $this1->headers[] = 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7'
     
    $this1->headers[] = 'Connection: keep-alive';  
    $this1->headers[] = 'Keep-alive: 300';
      
    $this1->headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';
    и изменил на такую строчку заголвок
    PHP:
    curl_setopt($chCURLOPT_HEADER$this1->headers);
     
  6. Zitt

    Zitt Elder - Старейшина

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    как куки выглядят? может с ними чтото...
    попробуй сначала послать запрос на страницу логина а потом
    PHP:
    preg_match_all('#Set-Cookie:\s([^;]*);#is'$string1$gets);
    $coc join(';'$gets[1]);
    юзай этьи куки.....
     
  7. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    если куки берутся и передаются, самое тру использовать
    PHP:
    curl_setopt($curlCURLOPT_COOKIEFILE"cookiefile.txt");
    curl_setopt($curlCURLOPT_COOKIEJAR"cookiefile.txt");
     
  8. h4xx0r

    h4xx0r Banned

    Joined:
    15 Aug 2009
    Messages:
    6
    Likes Received:
    1
    Reputations:
    -15
    Нахера выдирать куки регуляркой и уж тем более хранить их в файле, если можно просто поставить опцию curl_setopt($curl, CURLOPT_COOKIELIST, "") и войти на сайт.
    И в дальнейшем использовать этот один курл хэндл на все запросы (не ебя себе мозг), только меняя url.
    Переключение между post и get запросами осуществляется curl_setopt($curl, CURLOPT_POST, 1) и curl_setopt($curl, CURLOPT_HTTPGET, 1) соответственно.
     
    #8 h4xx0r, 17 Aug 2009
    Last edited: 17 Aug 2009
  9. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    Что бы ты спросил неудачнег!!!

    пхп-шный курл не держит CURLOPT_COOKIELIST
     
  10. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Да выложил бы "тут адрес страницы" давно бы уже сказали что не так...
     
  11. geforse

    geforse Elder - Старейшина

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    а я это использую )

    curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook");
    curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook");


    А то придет хакир и сделает запрос сайт.ru/cookiefile.txt (конечно это из раздела фантастики, но надо же было мне как-то аргументировать))


    ТС давай урл, посмотрим
     
  12. Legion342

    Legion342 New Member

    Joined:
    19 Oct 2006
    Messages:
    23
    Likes Received:
    1
    Reputations:
    0
    qiq.ru вот адрес сайта с него надо забрать некоторую инфу
     
  13. Legion342

    Legion342 New Member

    Joined:
    19 Oct 2006
    Messages:
    23
    Likes Received:
    1
    Reputations:
    0
    перепробовал уже все что знаю и cUrl пока проблему не получается решить с авторизацией
    не получилось передать логи и пароль чтобы авторизоваться на сайте...


    может кто каким советом подскажет еще
     
  14. Zedi

    Zedi Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    316
    Likes Received:
    120
    Reputations:
    13
    Совет: брать все что дает тампер дата и все получится
     
  15. Legion342

    Legion342 New Member

    Joined:
    19 Oct 2006
    Messages:
    23
    Likes Received:
    1
    Reputations:
    0
    все тоже самое посылаю абсолютно
     
  16. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Да криво ты чтото брал, вот у меня авторизовывается.
    PHP:
    <?php
    $ua 
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2';
    $ref 'http://qiq.ru/';
    $post 'action=login&login=b333&pass=123123123&mem=1';
    $ch curl_init('http://qiq.ru/');
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_FOLLOWLOCATION0);
    curl_setopt($chCURLOPT_USERAGENT$ua);
    curl_setopt($chCURLOPT_REFERER$ref);
    curl_setopt($chCURLOPT_COOKIEJAR'./cook');
    curl_setopt($chCURLOPT_COOKIEFILE'./cook');
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_POSTFIELDS$post);
    $res curl_exec($ch);
    curl_close($ch);
    $res iconv('UTF-8','windows-1251',$res);
    echo 
    $res
    ?>