【发布时间】:2011-10-31 12:45:27
【问题描述】:
我正在使用 php curl 获取页面。但是,许多网站似乎阻止了 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)';
【问题讨论】:
-
看起来像一个合法的用户代理。也许他们使用 UA 标头以外的其他机制来阻止机器人
-
如果你想假装普通用户浏览,不要使用 curl,而是使用
headless browser支持 javascript 和一切。网站无法检测到这一点。