Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.131.110.169] |
|
Сообщ.
#1
,
|
|
|
Всем привет,
задачка одновременно простая и интересная, -пишу робота который будет отслеживать доставку груза по номеру накладной вот этой компании, Вот по этой ссылке С CURL раньше работал но с методом ГЕТ. Накидал вот такой код (брал из примера) $uagent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"; $url=' Наша ссылка, см в тексте'; $postdata="trace1=11-5072-5400"; // номер накладной для примера $ch = curl_init( $url ); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_ENCODING, ""); curl_setopt($ch, CURLOPT_USERAGENT, $uagent); curl_setopt($ch, CURLOPT_TIMEOUT, 120); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata); // curl_setopt($ch, CURLOPT_COOKIEJAR, "z://coo.txt"); // curl_setopt($ch, CURLOPT_COOKIEFILE,"z://coo.txt"); $content= curl_exec( $ch ); $err = curl_errno( $ch ); $errmsg = curl_error( $ch ); $header = curl_getinfo( $ch ); curl_close( $ch ); echo $content; $header['errno'] = $err; $header['errmsg'] = $errmsg; $header['content'] = $content; return $header; Скрипт нормально выводит мне весь контент страницы, но как я понимаю сам ПОСТ запрос не срабатывает, так как не вижу данных о доставке. В коде страницы, я нашел скрытое поле, и попробовал изменить пост данные $postdata="trace1=11-5072-5400&trace_mode=1"; В чем засада? |
Сообщ.
#2
,
|
|
|
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); вот эта штука криво работает при определённых обстоятельствах. |
Сообщ.
#3
,
|
|
|
Отключил, результата не дало.(
|
Сообщ.
#4
,
|
|
|
Еще там есть trace_submit
|
Сообщ.
#5
,
|
|
|
panaslonikТОЧНО!
Я об этож помнил, и сначала составил такой пост $postdata="trace1=11-5072-5400&trace_mode=1&trace_submit"; и сразу не заметил что в конце переменной должен стоять знак "=" Добавил его и заработало) $postdata="trace1=11-5072-5400&trace_mode=1&trace_submit="; спасибо тебе!! |
Сообщ.
#6
,
|
|
|
Цитата Demon_id @ м? вот эта штука криво работает при определённых обстоятельствах. |
Сообщ.
#7
,
|
|
|
Цитата Pr0[)!9Y @ Цитата (Demon_id @ Вчера, 15:23) вот эта штука криво работает при определённых обстоятельствах. м? CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set |
Сообщ.
#8
,
|
|
|
А, это. Ну он об этом сообщает, так что он не работает совсем. А не криво
|