Не могу авторизоваться CURL.

MIKLFIRM
На сайте с 13.02.2010
Offline
166
1093

помогите авторизоваться на https://cp.beget.ru и спарсить https://cp.beget.ru/main

делаю так:

function ParseBeget($login, $pass)

{

if (!empty($login)&&!empty($pass))

{

$curl = new DudeCurl("https://cp.beget.ru/login_.php");

$curl->post = array (

"name"=> $login,

"password"=> $pass);

$curl->exec();

$content = $curl->init("https://cp.beget.ru/main")->exec();

return $content;

}else

{

return -1;

}

}

Жизнь в стиле IT (http://www.mikl.su) Мои отзывы (http://about-hosting.ru/) о хостингах.
Robin_Bad
На сайте с 24.12.2007
Offline
85
#1

Вы даже проблему толком не удосужились описать. Что конкретно у вас не получается, какие ошибки и т.п. Опять же, что за обёртка DudeCurl?

MIKLFIRM
На сайте с 13.02.2010
Offline
166
#2

DudeCurl - библиотека готовая.

Ошибка в том - что не авторизуется, на выходе $content - страничка с входом в систему. а должна быть другоая

SC
На сайте с 16.02.2007
Offline
77
#3

проверь куки, редирект, скрытые поля, заголовки.

А вообще парсить нехорошо...

ICQ: 735-415
[Удален]
#4

cURL нужен для того, чтобы имитировать браузер.

Вот и имитируйте. Сначала сниффером посмотрите какие заголовки уходят на скрипт авторизации, а потом выкиньте всякие чувакурлы и делайте нормально. Для curl не нужны никакие обертки (для curl_multi - напротив). А вот cURL-функционал при желании можно обернуть в класс. Что-то вроде:

class Parser {
public $ch;
public $baseOptions = array(
CURLOPT_RETURNTRANSFER=>TRUE, ...
);
public $contentChain = array(); // тут я буду хранить отпарсенное дерево ссылок
public function __construct($url) {
$this->ch = curl_init($url);
}
public function getLinksBySearchRequest($sr) {
return new VideoList($this->ch);
}
}

class VideoList {
public __construct($ch) {
}
public getVideos() { return self; }
public saveTo($path) {}
}

$ytParser = new Parser('youtube.com');
$ytParser->getLinksBySearchRequest('alore on dance')->getVideos()->saveTo('./path');

PS это только пример, написанный на коленке за ... почти 6 минут - не надо это вставлять в свой код :)

И не пытайтесь использовать готовые библиотеки, которые делают всю работу за вас, если не понимаете принципов их работы и если вам это не нужно единоразово.

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