[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: CURL
lknomad
Что-то я не пойму, как должен работать CURL. Делаю как в примерах на разных сайтах:
PHP
$ch=curl_init(); //ЙОЙГЙБМЙЪЙТХЕН УЕБОУ CURL
curl_setopt($chCURLOPT_URL$url); 
curl_setopt($chCURLOPT_HEADER1); 
curl_setopt($chCURLOPT_USERAGENT$ua);
curl_setopt($chCURLOPT_TIMEOUT10);
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_POSTFIELDS$post);

$answer=curl_exec($ch); 
echo 
$answer;

Получаю максимум что, так это страничку по этому урлу, с незаполненными полями. А надо то получать следующую страницу, куда попадаем после успешного нажатия submit на вызываемой форме.
Как этого добиться, что я делаю не так?

Тестировал ни на чужих формах и на своей, где точно нет скрытых полей, все равно. Я полагал ,что CURL способна выдать результать нажатия на submit, а не просто качать страницу по указанному адресу..



Спустя 6 минут, 19 секунд (8.06.2009 - 10:55) glock18 написал(а):
lknomad
laugh.gif laugh.gif laugh.gif

Вы поражаете своей наивностью до глубины души! Странно, что вы не полагаете, что curl сам парсит вывод и пишет в базу все что надо.

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

Спустя 5 часов, 29 минут, 13 секунд (8.06.2009 - 16:24) kirik написал(а):
Цитата (lknomad @ 8.06.2009 - 02:48)
Я полагал ,что CURL способна выдать результать нажатия на submit, а не просто качать страницу по указанному адресу..

И ведь способен! smile.gif Тут можно прочитать, как передаются POST параметры с помощью cURL.

Спустя 2 часа, 6 минут, 17 секунд (8.06.2009 - 18:30) lknomad написал(а):
glock18, ну я не буду говориь , чем поражаете Вы.

Я просто не понимаю тогда, зачем нужен CURL. Не просто скачать страницу же.
Я думал, он заполяет форму и возвращает то, что сервер выдаст по сабмиту.
Времени на изучение мало, поэтому решил помучать более опытных товарищей, авось быстрее въеду.

Спустя 2 минуты, 11 секунд (8.06.2009 - 18:32) lknomad написал(а):
Вообще мне надо имитировать броузер - логинится в неий сервис, вводить логин\пароль а потом парсить внутренности.

Спустя 16 минут, 9 секунд (8.06.2009 - 18:49) lknomad написал(а):
kirik, как бы это сделать?

Спустя 1 час, 12 минут, 55 секунд (8.06.2009 - 20:02) kirik написал(а):
Цитата (lknomad @ 8.06.2009 - 10:30)
Я думал, он заполяет форму и возвращает то, что сервер выдаст по сабмиту.

Форму должны заполнить вы сами, а курл уже вернет то, что возвращает сервер по сабмиту.

Цитата (lknomad @ 8.06.2009 - 10:49)
как бы это сделать?

нужно объявить cURL'у, что мы передаем POST данные через флаг CURLOPT_POST и затем через опцию CURLOPT_POSTFIELDS передавать те поля, которые указанны в форме.
типа:
PHP
$fields = array(
    
'field1' => 'value1',
    
'field2' => 'value2',
        
// ......
);
$ch curl_init('http://host.com/post.php');
curl_setopt($chCURLOPT_TIMEOUT15);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_POSTFIELDS$fields);
$return curl_exec($ch);
curl_close($ch);
echo 
$return// тут результат
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.