curl采集设置CURLOPT_FOLLOWLOCATION不起作用的解决办法
curl抓取页面时,如果页面会发生301,302跳转,则需要对curl进行参数设置。
0 1 |
curl_setopt($ch, CURLOPT_MAXREDIRS,20); curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); |
CURLOPT_FOLLOWLOCATION即表示自动进行跳转抓取,CURLOPT_MAXREDIRS表示最多允许跳转多少次。
不过在使用时需要注意:CURLOPT_FOLLOWLOCATION需要在安全模式关闭未设置open_basedir的情况下才能使用。open_basedir是php.ini中的一项设置,功能是将用户可操作的文件限制在某目录下。
如果开户了安全模式,或者设置了open_basedir,则无法使用自动跳转抓取,此时可以采用连续抓取的办法来抓取最终页面。为加快速度和减少不必要的开销,可以在中间非目标页面的抓取过程中使用: Continue reading