$url = "http://search.aol.com/aol/search?q=hello"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5'); $html = curl_exec($ch); curl_close($ch); echo $html;
Это возвращение:
HTTP/1.1 403 Forbidden Forbidden You don't have permission to access /aol/search on this server.
Все настройки завитушки, которые позволят получить результат.
Многие серверы тщательно проверяют заголовки запросов, чтобы подтвердить, что человек делает запрос (предпочтительно от агента браузера), а не автоматический процесс. Все предостережения в отношении несанкционированного доступа к их ресурсам, вы можете добавить некоторые заголовки Accept, чтобы получить ответ 200. В этом случае я смог получить ответ 200, используя только один дополнительный заголовок:
curl -i \ -H 'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \ -H 'User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11' \ http://search.aol.com/aol/search?q=hello
Похоже, AOL не хочет, чтобы кто-то запускал автоматические поиски на своем движке.
Darius