Вопрос по curl

Статус
В этой теме нельзя размещать новые ответы.

Tretiy

Постоялец
Заблокирован
Регистрация
10 Дек 2007
Сообщения
81
Реакции
9
  • Автор темы
  • Заблокирован
  • #1
Привет!
Есть задача объеденённый поиск на одной странице, который будет искать по 15-ти сайтам. Решаю задачу с помощью curl, но возникла проблема с asp.
Вот пример кода, который работает на сайтах написанных на php:

PHP:
<?php

$url = "http://www.nepia.com/search/vessel_search.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url); // set url to post to
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 3); // times out after 4s
curl_setopt($ch, CURLOPT_POST, 1); // set POST method
curl_setopt($ch, CURLOPT_POSTFIELDS, "txtVessel=".$_GET['s']); // add POST fields
$result = curl_exec($ch); // run the whole process
curl_close($ch);
print $result;
?>
На asp создаются ещё какие-то переменные при запросе, но не понимаю их смысла. С асп не знаком.
Кто-то может помочь?

пример такого поиска Для просмотра ссылки Войди или Зарегистрируйся
 
Надо в CURLOPT_POSTFIELDS передавать вот эти все переменные (взято из приведённого тобой примера:(
__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=Search=&txtShipName=$_GET['s']&ddResultsPerPage=20&btnSearch=Search

Особенно обрати внимание на __VIEWSTATE
значание этой переменной генерится как то, скорее всего это какой то идентификатор передаётся
попробуй сначала с пустым значением, если не прокатит - значит попытайся его вычислить

вот её поле
<input type="hidden" name="__VIEWSTATE" value="dDwtNTkxMzY1MDE7dDxwPGw8U3RhcnQ7PjtsPDA7Pj47bDxpPDE+Oz47bDx0PDtsPGk8MT47aTw1PjtpPDc+Oz47bDx0PDtsPGk8MT47aTwzPjs+O2w8dDxwPHA8bDxUZXh0Oz47bDwmbmJzcFw7Oz4+Oz47Oz47dDxwPHA8bDxJbWFnZVVybDs+O2w8L2ltYWdlcy9oZWFkZXJzL1dob1dlQXJlLmpwZzs+Pjs+Ozs+Oz4+O3Q8cDxsPHN0eWxlOz47bDxESVNQTEFZOmJsb2NrXDs7Pj47Oz47dDxwPGw8c3R5bGU7PjtsPERJU1BMQVk6bm9uZVw7Oz4+Ozs+Oz4+Oz4+O2w8SGVhZGVyMTpidG5TZWFyY2g7Pj6pBWDzGd9Ac689Kmg3TX3aDI26dQ==" />

если величина постоянная при одном клиенте и том же айпи, то просто сначала распарси её а потом уже передавай в курл.
но забирай начальную страницу тоже курлом.
и добавь поддержку куков в курл.
$path_ = pathinfo($_SERVER[SCRIPT_FILENAME]);
$ScriptDir=$path_['dirname'];
$CookieFile=$ScriptDir."/tmp/cookie.txt";

curl_setopt($ch, CURLOPT_COOKIEFILE, $CookieFile);
curl_setopt($ch, CURLOPT_COOKIEJAR, $CookieFile);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху