我正在尝试从以下网址检索网页:
当我将其粘贴到浏览器中时它可以工作,但是当我通过 cURL 运行它时,我收到一个包含以下错误的页面:“请求的 url 的一个或多个查询字符串参数无效或具有意外值,请更正并重试。”
如果我提供不同的 userAgent 或引荐来源网址,似乎没有什么区别。由于存在重定向,因此我使用 CURLOPT_FOLLOWLOCATION。
这是我的代码:
$ch = curl_init($page);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$html = curl_exec($ch);
curl_close($ch);
echo $html;
对于为什么这样的请求可以在浏览器中工作而不是在 cURL 中工作有什么想法吗?
最佳答案
您的浏览器正在发送 cookie,而 cURL 则没有。使用浏览器工具或 Fidler 检查您发送到网站的 cookie - 您需要传递相同的信息。
关于php - cURL 和网络浏览器之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10758105/