欢迎光临
我们一直在努力

php7.3-curl_init获取301、302跳转后的数据

最近在做一个蜘蛛项目,发现在抓取数据时,有时会碰到301的页面,原本写的curl_init函数php7-远程获取api接口或网页内容,直接无法抓取301跳转后的页面,因此对原本的函数进行了一下优化,现在可以直接抓取301跳转后的数据。

<?php
	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;
	}
    //函数中加入下面这条语句可以抓取301后的页面
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    // 最多跳转20次
    curl_setopt($ch, CURLOPT_MAXREDIRS,20); 

无论是GET提交数据还是POST提交数据,都可以直接调用这个函数,比以前更方便了。

赞(0) 打赏
转载请注明出处:爱编程 » php7.3-curl_init获取301、302跳转后的数据
分享到: 更多

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

爱编程、一个运维兼程序员的博客!

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏