今天在试着用curl登陆,验证码手动输入。
问题和 如何用curl模拟带有图片验证码的表单登录? 类似
而我的问题在于如何在拉取图片的时候拿到session或者设置?
(那个问题的第一个答案并不能正确运行)
求大神解答。
今天在试着用curl登陆,验证码手动输入。
问题和 如何用curl模拟带有图片验证码的表单登录? 类似
而我的问题在于如何在拉取图片的时候拿到session或者设置?
(那个问题的第一个答案并不能正确运行)
求大神解答。
<code>$cookie_file = dirname(__FILE__).'/cookies/'.$user.'cookie.txt'; // 初始化 $curl = curl_init('http://'); $header = array(); $header[] = 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'; curl_setopt($curl, CURLOPT_HTTPHEADER, $header); // 不输出header头信息 curl_setopt($curl, CURLOPT_HEADER, 0); // 保存到字符串而不是输出 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file); //存储cookies // post数据 curl_setopt($curl, CURLOPT_POST, 1); // 请求数据 curl_setopt($curl, CURLOPT_POSTFIELDS, $post); // 是否抓取跳转后的页面 curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); $response = curl_exec($curl); curl_close($curl);</code>
获取session
自己改下,不是通用的。别来说不行
<code> //获取cookies值 private function getCookies(){ $curl = curl_init('http://113.57.132.2:83/login.aspx'); // 不输出header头信息 curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLOPT_NOBODY, 1); // 伪装浏览器 curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36'); // 保存到字符串而不是输出 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $rs = curl_exec($curl); curl_close($curl); preg_match('%ASP.NET_SessionId=.*?;%sim',$rs,$arr); $cookies=str_replace('ASP.NET_SessionId=','',$arr[0]); $cookies=rtrim($cookies,';'); return $cookies; //$this->$cookies=rtrim($cookies,';'); }</code>