php curl как обычный пользователь, а не как бот - PullRequest
3 голосов
/ 31 октября 2011

Я использую php curl для получения страницы. Тем не менее, многие сайты, кажется, блокируют скручивание, вероятно, из-за заголовков / пользовательских агентов, которые он отправляет. У кого-нибудь есть пример заголовка curl, который будет эмулировать обычный браузер?

Это текущий заголовок, который я использую:

    $headers[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png, image/gif, image/x-bitmap, image/jpeg, image/pjpeg, *;q=0.5";
    $headers[] = "Cache-Control: max-age=0";
    $headers[] = "Connection: keep-alive";
    $headers[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
    $headers[] = "Accept-Language: en-us,en;q=0.5";
    $headers[] = "Pragma: ";
    $headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';

и пользовательский агент:

'Mozilla/6.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)';

Ответы [ 2 ]

0 голосов
/ 31 октября 2011

Загрузите веб-прокси-сервер fiddler и убедитесь, что отправляемая информация аналогична обычному браузеру. Когда вы используете Fiddler с PHP, обязательно установите:

curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:8888');

Также могут быть файлы cookie, которыми вы пренебрегаете.

0 голосов
/ 31 октября 2011

Вы уверены, что правильно устанавливаете user_agent?

curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/6.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)'); 

Если это так, то я полагаю, что в вашем запросе может быть что-то не так, а не фильтрация пользовательского агента - какие именно проблемы у вас возникают?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...