您的位置:首页 > 其它

一个非常实用的带验证码的模拟登陆实例

2015-06-07 18:25 483 查看
01
/**
02
*
模拟登录
03
*
Designbymaben
04
*
www.maben.com.cn
05
*/
06
07
//初始化变量
08
$cookie_file
=
"tmp.cookie"
;
09
$login_url
=
"http://xxx.com/logon.php"
;
10
$verify_code_url
=
"http://xxx.com/verifyCode.php"
;
11
12
echo
"正在获取COOKIE...\n"
;
13
$curlj
=
curl_init();
14
$timeout
=
5;
15
curl_setopt(
$curl
,
CURLOPT_URL,
$login_url
);
16
curl_setopt(
$curl
,
CURLOPT_RETURNTRANSFER,1);
17
curl_setopt(
$curl
,
CURLOPT_CONNECTTIMEOUT,
$timeout
);
18
curl_setopt(
$curl
,CURLOPT_COOKIEJAR,
$cookie_file
);
//获取COOKIE并存储
19
$contents
=
curl_exec(
$curl
);
20
curl_close(
$curl
);
21
22
echo
"COOKIE获取完成,正在取验证码...\n"
;
23
//取出验证码
24
$curl
=
curl_init();
25
curl_setopt(
$curl
,
CURLOPT_URL,
$verify_code_url
);
26
curl_setopt(
$curl
,
CURLOPT_COOKIEFILE,
$cookie_file
);
27
curl_setopt(
$curl
,
CURLOPT_HEADER,0);
28
curl_setopt(
$curl
,
CURLOPT_RETURNTRANSFER,1);
29
$img
=
curl_exec(
$curl
);
30
curl_close(
$curl
);
31
32
$fp
=
fopen
(
"verifyCode.jpg"
,
"w"
);
33
fwrite(
$fp
,
$img
);
34
fclose(
$fp
);
35
echo
"验证码取出完成,正在休眠,20秒内请把验证码填入code.txt并保存\n"
;
36
//停止运行20秒
37
sleep(20);
38
39
echo
"休眠完成,开始取验证码...\n"
;
40
$code
=
file_get_contents
(
"code.txt"
);
41
echo
"验证码成功取出:$code\n"
;
42
echo
"正在准备模拟登录...\n"
;
43
44
$post
=
"username=maben&pwd=hahahaha&verifycode=$code"
;
45
$curl
=
curl_init();
46
curl_setopt(
$curl
,
CURLOPT_URL,
$url
);
47
curl_setopt(
$curl
,
CURLOPT_HEADER,false);
48
curl_setopt(
$curl
,
CURLOPT_RETURNTRANSFER,1);
49
curl_setopt(
$curl
,
CURLOPT_POSTFIELDS,
$post
);
50
curl_setopt(
$curl
,
CURLOPT_COOKIEFILE,
$cookie_file
);
51
$result
=curl_exec(
$curl
);
52
curl_close(
$curl
);
53
54
//这一块根据自己抓包获取到的网站上的数据来做判断
55
if
(substr_count(
$result
,
"登录成功"
)){
56
echo
"登录成功\n"
;
57
}
else
{
58
echo
"登录失败\n"
;
59
exit
;
60
}
61
62
//啦啦啦,开始做你想做的事吧。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: