php7 curl_init(),php7.3-curl_init获取301、302跳转后的数据
最近在做一個蜘蛛項(xiàng)目,發(fā)現(xiàn)在抓取數(shù)據(jù)時,有時會碰到301的頁面,原本寫的curl_init函數(shù)php7-遠(yuǎn)程獲取api接口或網(wǎng)頁內(nèi)容,直接無法抓取301跳轉(zhuǎn)后的頁面,因此對原本的函數(shù)進(jìn)行了一下優(yōu)化,現(xiàn)在可以直接抓取301跳轉(zhuǎn)后的數(shù)據(jù)。
function http_request_json($url,$post_data = NULL)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
if (isset($post_data)){
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS,20);
$result[1] = curl_exec($ch);
$result[0]= curl_getinfo($ch,CURLINFO_HTTP_CODE);
curl_close($ch);
ksort($result);
return $result;
}
//函數(shù)中加入下面這條語句可以抓取301后的頁面
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
// 最多跳轉(zhuǎn)20次
curl_setopt($ch, CURLOPT_MAXREDIRS,20);
無論是GET提交數(shù)據(jù)還是POST提交數(shù)據(jù),都可以直接調(diào)用這個函數(shù),比以前更方便了。
總結(jié)
以上是生活随笔為你收集整理的php7 curl_init(),php7.3-curl_init获取301、302跳转后的数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 还不信者的下一句是什么呢?
- 下一篇: 加权轮询算法PHP,PHP实现负载均衡的
