Intereting Posts
MySQL и PHP – вставьте NULL, а не пустую строку Получить IP-адрес из DNS без использования gethostbyname? Отключить обработчик ошибок laravel Команды не синхронизированы; вы не можете запустить эту команду сейчас, когда вызываете хранимую процедуру в Mysql Почему бы просто не использовать ajax для Page Requests для загрузки содержимого страницы? Несколько загрузок файлов с помощью cURL PHP Предупреждение: ldap_bind (): невозможно связать с сервером: не удается связаться с сервером LDAP Zend Framework 2 разделяет переменные между контроллерами onBootstrap jQuery: событие keyup – подтверждение возврата ajax как динамически добавлять роли пользователей при входе в систему с помощью symfony2 (и fosUserBundle)? ServiceManager в ZF3 Как сделать выравнивание на консоли в php Не удалось создать почтовую функцию. Почему эта ошибка возникает Попытка загрузить изображение (которое отправляется как байт ) на мой домен / сервер в PHP Будет ли порядок данных в почтовой форме одинаковым для него в веб-форме?

Может ли HTTP-запрос cURL полностью имитировать запрос на основе браузера?

Это вопрос из двух частей.

Q1: Может ли запрос на основе cURL 100% подражать запросу на основе браузера?

Q2: Если да, то какие все параметры должны быть установлены. Если не то, что делает браузер, который не может быть имитирован cURL?

У меня есть веб-сайт, и я вижу тысячи запросов, сделанных из одного IP за очень короткое время. Эти запросы собирают все мои данные. Когда вы просматривали журнал, чтобы идентифицировать используемый агент, он выглядит как запрос из браузера. Поэтому было любопытно узнать, является ли его бот, а не пользователем.

заранее спасибо

R1: Я полагаю, что если вы установите все правильные заголовки, то, да, запрос на основе завитка может имитировать браузерский: в конце концов, оба отправляют HTTP-запрос, который представляет собой всего пару строк текста, следующих за (а именно, HTTP RFC)

R2: Лучший способ ответить на этот вопрос – посмотреть, что ваш браузер отправляет; с Firefox, например, вы можете использовать Firebug или LiveHTTPHeaders, чтобы получить это.

Например, чтобы получить эту страницу, Firefox отправил эти заголовки запросов:

GET /questions/1926876/can-a-curl-based-http-request-imitate-a-browser-based-request-completely HTTP/1.1 Host: stackoverflow.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2b4) Gecko/20091124 Firefox/3.6b4 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Referer: http://stackoverflow.com/questions/1926876/can-a-curl-based-http-request-imitate-a-browser-based-request-completely/1926889 Cookie: ....... Cache-Control: max-age=0 

(Я просто удалил пару информации – но вы получите идею ;-))

Используя curl, вы можете работать с curl_setopt для установки заголовков HTTP; здесь вам, вероятно, придется использовать комбинацию CURLOPT_HTTPHEADER , CURLOPT_COOKIE , CURLOPT_USERAGENT , …

На этой странице есть все ответы на ваши вопросы . Вы можете имитировать вещи в основном.