无法通过curl获取页面内容

时间:2014-07-29 09:38:48

标签: php curl web-scraping

我试图使用curl来获取网页的内容,但是我得到了一个空的回复。检查标题后,我发现远程服务器返回' HTTP / 1.1 302暂时移动'

当然,浏览器中的相同网址会返回页面。

为什么会这样?也许远程服务器可以理解这是一个卷曲请求并有一些限制?关于如何获取页面内容的任何想法?

感谢。

2 个答案:

答案 0 :(得分:2)

您必须切换CURLOPT_FOLLOWLOCATION选项:

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);

希望它有所帮助。

答案 1 :(得分:0)

如果来自mudasobwa答案的重定向选项(curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true))没有解决问题,那么服务器也可能阻止来自“普通”用户代理的请求。您可以使用此选项模拟curl中的用户代理字符串(示例):

curl_setopt($curl, CURLOPT_USERAGENT,"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0 " );

您甚至可以从列表中添加浏览器的随机用户代理:http://www.vwp-online.de/ua.php?ua_type=browser