PHP第六篇:模拟浏览器post提交cookie和参数,获取返回值

下面是自定义的post方法:

function post($url,$post_data,$location = 0,$reffer = null,$origin = null,$host = null){
     $header = array( //头部信息,上面的函数已说明
                'Accept: application/json, text/javascript, */*; q=0.01',
				'Accept-Encoding: gzip, deflate',
				'Accept-Language: zh-CN,zh;q=0.9',
				'Connection: keep-alive',
				'Content-Length: 779',
				'Content-Type: application/x-www-form-urlencoded',
				'Cookie: 这个header信息可以直接复制网址上的',
				'Host: www.taokouling.com',
				'Origin: http://www.taokouling.com',
				'Referer: http://www.taokouling.com/index/taobao_ehylj/',
				'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
				'X-Requested-With: XMLHttpRequest',

            );
            
            $curl = curl_init();  //这里并没有带参数初始化
       
            curl_setopt($curl, CURLOPT_URL, $url);//这里传入url
            
            curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
            
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);//对认证证书来源的检查,不开启次功能
            
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);//从证书中检测 SSL 加密算法
            
            curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36");
            //模拟用户使用的浏览器,自己设置,我的是"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"
            
            curl_setopt($curl, CURLOPT_AUTOREFERER, 1);//自动设置referer
            
            curl_setopt($curl, CURLOPT_POST, 1);//开启post
            
            curl_setopt($curl, CURLOPT_ENCODING, "gzip, deflate" );
            
            curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);//要传送的数据
            
            curl_setopt($curl, CURLOPT_COOKIE, "cookie来源于浏览器复制");//以变量形式发送cookie
            
            curl_setopt($curl, CURLOPT_TIMEOUT, 30);//设置超时限制,防止死循环
            
            curl_setopt($curl, CURLOPT_HEADER, 1);
            
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            
            $tmpInfo = curl_exec($curl);
            return $tmpInfo;
            
        }

PS:header里面的cookie需要在你想请求的网页上获取。获取方式如下:

这里面复制完整的cookie信息,替换到上面的post方法,这个你们可以改进,我只是实现了这个东西。

发布了65 篇原创文章 · 获赞 31 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/zhangtao0417/article/details/95494466
今日推荐