Авторизация с пом. curl ?

12
L
На сайте с 17.05.2013
Offline
88
1733

Есть задача - написать парсер для сайта, у которого стоит авторизация с пом htaccess. Подскажите как програмно пройти эти авторизацию? Нашел несколько примеров для curl, но там авторизация методом пост.. - CURLOPT_POSTFIELDS. О GET запросах ничего нет

---------- Добавлено 09.07.2014 в 03:46 ----------

Подскажите что неправильно в моем коде:

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, "http://www.mysite.ru/"); // Здесь окно с авторизацией с пом. htaccess
curl_setopt($curl, CURLOPT_USERPWD, "[mylogin]:[myPass]");
curl_setopt ($curl, CURLOPT_HEADER, 0);
$str = curl_exec ($curl);
curl_close ($curl);
echo $str."<br>"; // Выводит страницу Unauthorized This server could not verify that you are authorized to access the document requested
ДП
На сайте с 23.11.2009
Offline
203
#1


curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

Такой заголовок еще добавьте попробуйте.

L
На сайте с 17.05.2013
Offline
88
#2

Добавил curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

после curl_setopt($curl, CURLOPT_URL, "http://www.mysite.ru/");

Нужная страница загружается но все-равно выскакивает окошко с авторизацией..

дани мапов
На сайте с 06.09.2012
Offline
204
#3


curl_setopt($curl, CURLOPT_URL, "http://www.mysite.ru/login.php?login=$login&password=$password"); // Здесь окно с авторизацией с пом. htaccess
Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
L
На сайте с 17.05.2013
Offline
88
#4
дани мапов:

curl_setopt($curl, CURLOPT_URL, "http://www.mysite.ru/login.php?login=$login&password=$password"); // Здесь окно с авторизацией с пом. htaccess

Так ведь авторизация с пом. сервера. При чем здесь /login.php?

дани мапов
На сайте с 06.09.2012
Offline
204
#5
luckydan:
Так ведь авторизация с пом. сервера. При чем здесь /login.php?

Так подставьте свои данные, я же не знаю, как там там скрипт и переменные доступа называются.

L
На сайте с 17.05.2013
Offline
88
#6

Авторизация происходит с пом. вебсервера (файл htaccess)

ДП
На сайте с 23.11.2009
Offline
203
#7

Тогда разве что могу посоветовать ключить опцию CURLOPT_VERBOSE, смотреть на то, что курл отправляет и получает и сравнивать с тем, что отправляется/получается в браузере через какой-нибудь firebug/devtools

L
На сайте с 17.05.2013
Offline
88
#8

Вставил в код curl_setopt($curl, CURLOPT_VERBOSE, TRUE);

но что-то вообще ничего не выводится - белый экран, хотя стоит вначале скрипта

ini_set("display_errors", 1);

error_reporting(E_ERROR | E_WARNING | E_PARSE);

ДП
На сайте с 23.11.2009
Offline
203
#9

А попробуйте скрипт из консоли запустить, я обычно эту опцию с консольными скриптами использовал - там всё выводилось.

L
На сайте с 17.05.2013
Offline
88
#10

Следующий код - показывает нужную хтмл страницу, но выскакивает паралельно форма логина и пароля. Раньше отдалавало страницу с 401 ошибкой. Подскажите что здесь может быть не так?


$url='http://site.ru/';
$cookie = 'cookies.txt';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, 'Mylogin:Mypass');
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
$html = curl_exec($ch);
curl_close($ch);
echo $html;
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий