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

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

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

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

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

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


person gameover    schedule 18.12.2009    source источник
comment
Да, cURL может на 100% имитировать запрос браузера. Чтобы узнать, какие параметры установить, используйте что-то вроде wireshark, чтобы увидеть, как ваш браузер взаимодействует через HTTP.   -  person Dominic Rodger    schedule 18.12.2009


Ответы (2)


R1: я полагаю, если вы установите все правильные заголовки, то, да, запрос на основе curl может имитировать запрос на основе браузера: в конце концов, оба отправляют 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, ...

person Pascal MARTIN    schedule 18.12.2009

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

person Sarfraz    schedule 18.12.2009