Подтвердить что ты не робот

Php curl: как я могу эмулировать запрос получения точно так же, как веб-браузер?

есть сайты, которые, когда я открываю конкретный запрос ajax в браузере, получаю приведенную страницу, но когда я пытаюсь загрузить их с завиванием, я получаю сообщение об ошибке с сервера.

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

что я делаю:

$url="https://new.aol.com/productsweb/subflows/ScreenNameFlow/AjaxSNAction.do?s=username&f=firstname&l=lastname";
ini_set('user_agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT
5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)');
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
print $result;
4b9b3361

Ответ 1

Вы уверены, что модуль curl отличит ini_set ('user_agent',...)? Существует опция CURLOPT_USERAGENT, описанная в http://docs.php.net/function.curl-setopt.
Может ли быть также файл cookie, протестированный сервером? Это можно обрабатывать с помощью CURLOPT_COOKIE, CURLOPT_COOKIEFILE и/или CURLOPT_COOKIEJAR.

edit: поскольку запрос использует https, также может быть ошибка при проверке сертификата, см. CURLOPT_SSL_VERIFYPEER.

$url="https://new.aol.com/productsweb/subflows/ScreenNameFlow/AjaxSNAction.do?s=username&f=firstname&l=lastname";
$agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
var_dump($result);