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

    @vkeyster
    <?php
    $url = 'http://fantasts.ru/forum/index.php?act=Login&CODE=01&CookieDate=1'; //логин по этой ссылке
    $ch = curl_init();
    $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);
    curl_setopt($ch, CURLOPT_URL, $url); // отправляем на
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (бла бла бла..) ");
    curl_setopt($ch, CURLOPT_HEADER, 0); // не включать заголовк в результат запроса
    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,  dirname(__FILE__).'/my_cookies.txt');
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate'); // указивает curl что ответ может быть сжат, без этого будут "кракозябры"
    curl_setopt($ch, CURLOPT_POST, 1); // использовать данные в post
    $login = array(
    'UserName' => 'login',
    'PassWord' => 'password',
    'x' => 0,
    'y' => 0);
    curl_setopt(($ch), CURLOPT_POSTFIELDS, http_build_query($login)); // для вашей формы надо так
    curl_exec($ch);
    if (curl_errno($ch))
    {
    print curl_error($ch);
    exit;
    }
    curl_close($ch);
    ?>
    Ответ написан
    Комментировать