Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (10)

Лучшие ответы пользователя

Все ответы (2)
  • Как сделать парсер на php с использованием cURL с авторизацией?

    FootWork
    @FootWork Автор вопроса
    Доделал. В результате код авторизации получился такой:
    <?php
    
    $url = 'http://fantasts.ru/forum/index.php?act=Login&CODE=01&CookieDate=1';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url); // отправляем на 
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"); 
    curl_setopt($ch, CURLOPT_HEADER, 0); // пустые заголовки
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвратить то что вернул сервер
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // следовать за редиректами
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);// таймаут4
    curl_setopt($ch, CURLOPT_REFERER, "http://fantasts.ru/forum/index.php");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// просто отключаем проверку сертификата 
    curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/my_cookies.txt'); // сохранять куки в файл
    curl_setopt($ch, CURLOPT_COOKIEFILE, '/my_cookies.txt');
    curl_setopt($ch, CURLOPT_POST, 1); // использовать данные в post
    $login = array(
    	'UserName' => 'YourLogin',
    	'PassWord' => 'YourPass'
    );
    curl_setopt(($ch), CURLOPT_POSTFIELDS, $login);
    $result1 = curl_exec($ch);
    $url2 ='http://fantasts.ru/forum/index.php?';
    curl_setopt($ch, CURLOPT_URL, $url2);
    curl_setopt($ch, CURLOPT_REFERER, "http://fantasts.ru/forum/index.php?act=Login&CODE=01&CookieDate=1");
    curl_setopt($ch, CURLOPT_COOKIEFILE, '/my_cookies.txt');
    $result2 = curl_exec($ch);
    if (curl_errno($ch)) 
    {
       print curl_error($ch);
       exit;
    }
    else
    {
    	echo 'LOGIN WAS SUCCESFULL';
    	echo $result2;
    }
    curl_close($ch);
    
    ?>


    Объясните только, почему когда я ставлю
    curl_setopt($ch, CURLOPT_HEADER, 0); // пустые заголовки

    Все норм (хотя как он работает без заголовков??)
    А если пытаюсь еще больше быть похожим на браузер, т.е. пишу
    $header  = array
    (
        '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: gzip, deflate',
        'Content-type: application/x-www-form-urlencoded'
    );
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

    На выходе получаю кракозябры, которые ни один декодер не понимает
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (6)