好像很久之前写过一篇爬12306登录接口的帖子,没写完,今天就接着来写了.
接口及大致流程见 →→→接口说明
这篇直接上代码
首先是php代码中最重要的get请求方法!!!
/**
* get请求方法
* @param $url
* @param array $_header
* @return bool|mixed
*/
function get( $url, $_header = [] ,$cookie_path = '')
{
//(假装浏览器请求)
$_header = array_merge($_header,[
'User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
'Connection:keep-alive',
'Accept-Language:zh-CN,zh;q=0.8',
'Accept-Encoding:gzip, deflate, br',
'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Upgrade-Insecure-Requests:1'
]);
$curl = curl_init();
if( stripos($url, 'https://') !==FALSE )
{
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
}
//这个很重要
if(!empty($cookie_path)){
//访问时带上cookie文件里的内容转成cookie字符串附加在请求头里面
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_path);
//这个是把响应的cookie存进cookie保存起来
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_path);
}
//这个是针对12306响应内容 乱码的处理
curl_setopt($curl, CURLOPT