php模拟登录(带验证码)

发布时间:2020/07/04 作者:天马行空 阅读(689)

<?php
/**
 * 模拟登录
 */
@header('Content-type: text/html;charset=UTF-8');

//初始化变量
$cookie_file = 'tmp.cookie';
//$cookie_file = 'D:/cookie.txt';
$login_url = 'http://www.a.com/member/login/';
$verify_code_url = ' 

echo 'COOKIE获取完成,正在取验证码...';

//取出验证码
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $verify_code_url);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);//使用储存cookie的文件
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file); //获取COOKIE并存储
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$img = curl_exec($curl);
curl_close($curl);
$fp = fopen('verifyCode.jpg','w');
fwrite($fp,$img);
fclose($fp);

echo '验证码取出完成,正在休眠,20秒内请把验证码填入code.txt并保存';

//停止运行20秒
sleep(25);

echo '休眠完成,开始取验证码...';

$code = file_get_contents('code.txt');

echo '验证码成功取出:'.$code;
echo '正在准备模拟登录...';

$post = 'username=***&password=***&loginCode=$code';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $login_url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);//使用储存cookie的文件
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file); //获取COOKIE并存储
$result=curl_exec($curl);
curl_close($curl);
$result = json_decode($result,true);
if($result['err'] == 1){//OK,开始做你想做的事吧。。。。。

 //获取首页
 $curl = curl_init();
 curl_setopt($curl, CURLOPT_URL, 'http://www.a.com/member/index/');
 curl_setopt($curl, CURLOPT_HEADER, false);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
 curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
 $result=curl_exec($curl);
 curl_close($curl);
 //这一块根据自己抓包获取到的网站上的数据来做判断
 print_r($result);exit;
 
}else{
 echo '11111<pre&gt;';print_r($result);exit;
}


关键字php 模拟登录