PHP利用curl获取验证码(发送cookie二次抓取)
php中curl功能的强大我想大家可能还不知道吧,下面我再介绍一个工作中用到的利用curl获取验证码的实例并且可以为造cookie.
<?php
$CookieFile = tempnam("./tmep", "beast");
if (isset($_GET["img"])) {
$url = 'http://www.phprm.com/phper/php.htm'; //验证码code
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_COOKIEJAR, $CookieFile); //把返回来的cookie信息保存在文件中
curl_exec($ch);
curl_close($ch);
exit();
}
if (isset($_POST['d'])) {
$b = $_POST[d]; //验证码
$p = "waybillNo=1721269381&inputcode=" . $b;
$ch = curl_init();
// 2. 设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, "http://www.phprm.com");
curl_setopt($ch, CURLOPT_COOKIEJAR, $CookieFile);
curl_setopt($ch, CURLOPT_COOKIEFILE, $CookieFile); //同时发送Cookie
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $p); //提交查询信息
$s = curl_exec($ch);
curl_close($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, http: //www.phprm.com);
curl_setopt($ch, CURLOPT_COOKIEFILE, $CookieFile); //同时发送Cookie
curl_setopt($ch, CURLOPT_COOKIEJAR, $CookieFile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $p); //提交查询信息
$bs = curl_exec($ch);
echo $bs; //输出结果
curl_close($ch);
} else {
?>
<form id="form1" name="form1" method="post" action="">
<img src="?img=true" /><!--由服务器端取图片内容并输出-->
<input type="text" name="d" />
<input type="submit" name="button" id="button" value="提交" />
</form>
<?php
}
?>本文地址:http://www.phprm.com/code/55543.html
转载随意,但请附上文章地址:-)