读书人

curl抓取页面时遇到重定向的解决办法

发布时间: 2012-09-08 10:48:07 作者: rapoo

curl抓取页面时遇到重定向的解决方法

用php的curl抓取网页遇到了问题,为阐述方便,将代码简化如下:

<?phpfunction curlGet($url) {        $ch = curl_init();        curl_setopt($ch, CURLOPT_URL, $url);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);         curl_setopt($ch, CURLOPT_HEADER, true);        //函数中加入下面这条语句        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);                return curl_exec($ch);}
再次执行代码,可以抓取到想要的页面。

CURLOPT_FOLLOWLOCATION指明:
让curl递归的抓取http头中Location中指明的url。
当抓取次数超过CURLOPT_MAXREDIRS时,递归将终止。
在抓取中任何跳转带来的问题,都可通过设置此参数解决。

有关重定向的问题,可参考HTTP返回码中301与302的区别

读书人网 >Web前端

热点推荐