Получить rss ленту php + curl

Тема в разделе "Как сделать...", создана пользователем Wertos, 22 фев 2015.

  1. Wertos

    Wertos Постоялец

    Регистр.:
    13 апр 2007
    Сообщения:
    145
    Симпатии:
    27
    Никак не могу забрать rss ленту http://www.kp40.ru/kp40.ru_news.rss
    Через CURL и просто через file_get_contents, всегда пишет 403 ошибку. По дня бьюсь, безрезультатно...
    Через CURL пробовал так
    PHP:
            $headers = array(
                        
    'Host: www.kp40.ru',
                        
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
                        
    'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
                        
    'Accept-Encoding: deflate',
                        
    'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7',
                        
    'Connection: keep-alive'
                        
    ); 
            
    $ch curl_init();
            
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2292.0 Safari/537.36 OPR/29.0.1781.0 (Edition developer)");
            
    curl_setopt($chCURLOPT_HTTPHEADER$headers);
            
    curl_setopt($chCURLOPT_URL"http://www.kp40.ru/kp40.ru_news.rss"); 
            
    curl_setopt($chCURLOPT_REFERER"http://www.kp40.ru/");
    //        curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
    //        curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
            
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
            
    $answer  curl_exec($ch);
            
    curl_close($ch);
            echo 
    $answer;
     
    FUTURiTY нравится это.
  2. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    352
    Симпатии:
    223
    Скорее всего ваш IP в бан попал. Я попробовал так:
    PHP:
            $ch curl_init();
            
    curl_setopt($chCURLOPT_URL"http://www.kp40.ru/kp40.ru_news.rss");
            
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
            
    $answer  curl_exec($ch);
            
    curl_close($ch);
            echo 
    $answer;
    Никаких ошибок
     
    AlgoriVismut, Wertos и FUTURiTY нравится это.
  3. Wertos

    Wertos Постоялец

    Регистр.:
    13 апр 2007
    Сообщения:
    145
    Симпатии:
    27
    Я грешил на IP, сервер во Франции.
    А вариант с CURLOPT_PROXY сработает ? При условии что IP прокси не забанен ?
     
    FUTURiTY нравится это.
  4. cyber_punker

    cyber_punker Создатель

    Регистр.:
    12 ноя 2014
    Сообщения:
    6
    Симпатии:
    10
    Сработает но все зависит как у них банят а соотвественно от того какие вы будете прокси юзать. В любом случае только попробовав узнаете наверняка.
     
    Wertos нравится это.
  5. Wertos

    Wertos Постоялец

    Регистр.:
    13 апр 2007
    Сообщения:
    145
    Симпатии:
    27
    Спасибо всем. Скорее бан по IP. Через прокси забирать не вариант ((