Это вопрос из двух частей.
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
, …
На этой странице есть все ответы на ваши вопросы . Вы можете имитировать вещи в основном.