CURL и Ajax

LEXAlForpostl

Мой дом здесь!
Регистрация
21 Май 2008
Сообщения
766
Реакции
228
Здравствуйте.
Помогите, пожалуйста, получить список сайтов из sape по определенному фильтру.
Суть работы:
1. Отправляем запрос.
2. Ajax скрипт проверяет статус выполнения задания.
3. Доставляются результаты.

1. выполнен
2. выполнен
3. не работает

Запрос из пункта №2
PHP:
http://www.sape.ru/ajax_task.php?act=status&task=search

POST /ajax_task.php?act=status&task=search HTTP/1.1
Host: www.sape.ru
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0
Accept: application/json, text/javascript, */*
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
X-Requested-With: XMLHttpRequest
Referer: http://www.sape.ru/orders.php?link_id=27804282&act=s_order&filter_mode=1&no_results=true
Cookie: __utma=1.1760547977.1322547313.1322604624.1322604687.3; __utmz=1.1322547313.1.1.utmcsr=articles.sape.ru|utmccn=(referral)|utmcmd=referral|utmcct=/wm/sites/; bb0lastvisit=1322204283; bb0lastactivity=0; SAPE=xR5-BgjuMesD0QvHRBHFOatEGN8; __utmc=1; AUTH_TICKET=9a1bca9f696e5d9aa8f0c0a893d60ba8; SETTINGS="{'rate':'25'|'show_confirm':'1'|'currency':'rur'}"; advookie=Tx2F9E09C4021709829E6360DBEC50DDC7C35D9ABECD16ADEB31F1F54FE60A7A0139363834; __utmb=1.1.9.1322608460338
Pragma: no-cache
Cache-Control: no-cache
Content-Length: 0

HTTP/1.1 200 OK
Server: nginx
Date: Tue, 29 Nov 2011 23:15:39 GMT
Content-Type: text/html; charset=WINDOWS-1251
Connection: keep-alive
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 142

Запрос из пункта №3:
PHP:
http://www.sape.ru/ajax_orders.php

POST /ajax_orders.php HTTP/1.1
Host: www.sape.ru
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0
Accept: */*
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://www.sape.ru/orders.php?link_id=27804282&act=s_order&filter_mode=1&no_results=true
Content-Length: 187
Cookie: __utma=1.1760547977.1322547313.1322604624.1322604687.3; __utmz=1.1322547313.1.1.utmcsr=articles.sape.ru|utmccn=(referral)|utmcmd=referral|utmcct=/wm/sites/; bb0lastvisit=1322204283; bb0lastactivity=0; SAPE=xR5-BgjuMesD0QvHRBHFOatEGN8; __utmc=1; AUTH_TICKET=9a1bca9f696e5d9aa8f0c0a893d60ba8; SETTINGS="{'rate':'25'|'show_confirm':'1'|'currency':'rur'}"; advookie=Tx2F9E09C4021709829E6360DBEC50DDC7C35D9ABECD16ADEB31F1F54FE60A7A0139363834; __utmb=1.1.9.1322608460338
Pragma: no-cache
Cache-Control: no-cache
link_id=27804282&act=s_order&filter_mode=1&show_mode=&pn=1&filter=946614&ps=250&show_mode=1&anchor_order=&order=19&s_pages_per_site=all&new_search=1&ajax_act=get_fast_result&last_act=true


HTTP/1.1 200 OK
Server: nginx
Date: Tue, 29 Nov 2011 23:15:40 GMT
Content-Type: text/html; charset=WINDOWS-1251
Transfer-Encoding: chunked
Connection: keep-alive
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Encoding: gzip

Сам скрипт:
PHP:
<?
function curl_s ($url, $post,$refer = 'http://www.sape.ru/')
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_COOKIEJAR, 'cook.txt');//сохранить куки в файл
curl_setopt($curl, CURLOPT_COOKIEFILE, 'cook.txt');//считать куки из файла
curl_setopt($curl, CURLOPT_USERAGENT, "Opera/10.00 (Windows NT 5.1; U; ru) Presto/2.2.0");
//Установите эту опцию в ненулевое значение, если вы хотите, чтобы PHP завершал работу скрыто, если возвращаемый HTTP-код имеет значение выше 300. По умолчанию страница возвращается нормально с игнорированием кода.
curl_setopt($curl, CURLOPT_FAILONERROR, 1);
curl_setopt($curl, CURLOPT_REFERER, $refer);
curl_setopt($curl, CURLOPT_TIMEOUT, 3);
curl_setopt($curl, CURLOPT_POST, 1); // устанавливаем метод POST
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
//Установите эту опцию в ненулевое значение, если вы хотите, чтобы шапка/header ответа включалась в вывод.
curl_setopt($curl, CURLOPT_HEADER, 1);
//Внимание, важный момент, сертификатов, естественно, у нас нет, так что все отключаем
curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);// не проверять SSL сертификат
curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST, 0);// не проверять Host SSL сертификата
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);// разрешаем редиректы
curl_setopt ($curl, CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($curl); // выполняем запрос и записываем в переменную
curl_close($curl); // заканчиваем работу curl
return ($result);
}
curl_s ('https://auth.sape.ru/login/','r=http://www.sape.ru/&act=login&username=реальный_логин&password=реальный_пароль');
curl_s ('https://www.sape.ru/ajax_task.php?act=add&task=search','link_id=27804303&act=s_order&filter_mode=1&show_mode=&pn=1&filter=946614&ps=250&show_mode=1&anchor_order=&order=19&s_pages_per_site=all&new_search=1');
$c=0;
$f=0;
while ($f!=1&&$c<300)
{
$t = es(curl_s ('http://www.sape.ru/ajax_task.php?act=status&task=search',''));
echo $t;
	if (stristr($t,'Задание выполнено'))
	$f=1;
	sleep (3);
	$c++;
	
}

echo curl_s ('http://www.sape.ru/ajax_orders.php','link_id=27804268&act=s_order&filter_mode=1&show_mode=&pn=1&filter=946614&ps=250&show_mode=1&anchor_order=&order=19&s_pages_per_site=all&new_search=1&ajax_act=get_fast_result&last_act=true','http://www.sape.ru/orders.php?link_id=27804268&act=s_order&filter_mode=1&no_results=true');



function es ($path) {
$path = strtoupper ($path);
return strtr($path, array("\U0430"=>"а", "\U0431"=>"б", "\U0432"=>"в",
"\U0433"=>"г", "\U0434"=>"д", "\U0435"=>"е", "\U0451"=>"ё", "\U0436"=>"ж", "\U0437"=>"з", "\U0438"=>"и",
"\U0439"=>"й", "\U043A"=>"к", "\U043B"=>"л", "\U043C"=>"м", "\U043D"=>"н", "\U043E"=>"о", "\U043F"=>"п",
"\U0440"=>"р", "\U0441"=>"с", "\U0442"=>"т", "\U0443"=>"у", "\U0444"=>"ф", "\U0445"=>"х", "\U0446"=>"ц",
"\U0447"=>"ч", "\U0448"=>"ш", "\U0449"=>"щ", "\U044A"=>"ъ", "\U044B"=>"ы", "\U044C"=>"ь", "\U044D"=>"э",
"\U044E"=>"ю", "\U044F"=>"я", "\U0410"=>"А", "\U0411"=>"Б", "\U0412"=>"В", "\U0413"=>"Г", "\U0414"=>"Д",
"\U0415"=>"Е", "\U0401"=>"Ё", "\U0416"=>"Ж", "\U0417"=>"З", "\U0418"=>"И", "\U0419"=>"Й", "\U041A"=>"К",
"\U041B"=>"Л", "\U041C"=>"М", "\U041D"=>"Н", "\U041E"=>"О", "\U041F"=>"П", "\U0420"=>"Р", "\U0421"=>"С",
"\U0422"=>"Т", "\U0423"=>"У", "\U0424"=>"Ф", "\U0425"=>"Х", "\U0426"=>"Ц", "\U0427"=>"Ч", "\U0428"=>"Ш",
"\U0429"=>"Щ", "\U042A"=>"Ъ", "\U042B"=>"Ы", "\U042C"=>"Ь", "\U042D"=>"Э", "\U042E"=>"Ю", "\U042F"=>"Я"));
} 

echo "<br>OK";
?>
Скрипт выводит NO_CACHE, вместо списка урлов.

В чём ошибка?
 
Тем, что там сайты для закупки ссылок нельзя выбирать по фильтрам.
 
Назад
Сверху