1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > PHP curl模拟登录带验证码的网站【PHP】

PHP curl模拟登录带验证码的网站【PHP】

时间:2021-01-06 01:15:54

相关推荐

PHP curl模拟登录带验证码的网站【PHP】

后端开发|php教程

php_curl模拟登录,php_curl登录淘宝

后端开发-php教程

需求是这样的,需要登录带验证码的网站,获取数据,但是不可能人为一直去记录数据,想通过自动采集的方式进行,如下是试验出来的结果代码!有需要的可以参考下!

网吧主页源码,ubuntu怎么拖动文件,tomcat6 部署项目,dz爬虫来访,php这几没啥机会,seo关键词多长时间能上去lzw

display(); } public function _initialize(){ foreach($this->cookieName as $key => $name) {$this->cookiePathFile[] = ROOT_PATH . $this->cookiePath . $this->cookieName[$key] . \_xxx.txt; } } /** * 登录xxx */ public function xxxLogin() { $username = I(username); $password = I(password); $verifyCode = I(verify); $loginData = array(\__VIEWSTATE => /wEPDwUKMTU0MzAzOTU4NmQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFDExvZ2luX1N1Ym1pdL/yae69NsY163G3yuP0lxjz8oXu, //不把参数补全可能会不被响应哦\__VIEWSTATEGENERATOR => DC42DE27, xt_UserName => $username, xt_PWD => $password, xt_VerifyCode => $verifyCode,SMONEY => ABC,Login_Submit.x => 52,Login_Submit.y => 19, ); $getBack = $this->_cookieRequest(/noLogin.aspx, $loginData); if(preg_match(/<div[^\

(.*?)/s, $getBack, $match)){echo matched\r\n;print_r($match); }else{echo $getBack,

;$paramsFull = parse_url($getBack);parse_str($paramsFull[query], $paramsFull[parsedQuery]);if(!empty($paramsFull[parsedQuery][Warn])) { $msg = "您好,欢迎来P,请先登录。"; switch ($paramsFull[parsedQuery][Warn]) {case 2: $msg = 您输入的验证码错误,请重试; break;case 3: $msg = 该帐号不存在,还没帐号?; break;case 5: $msg = 账户已注销; break;case 6: $msg = 密码错误,如果连续错误3次半小时内不能登录!; break;case 20: $msg = 今日密码错误3次及以上,请于半小时后再来登录!; break;case 21: $msg = 今日您所在IP的所有帐号密码错误9次以上,请于半小时后再来登录!; break;case 22: $msg = 登录失败,您所在IP今日登录的帐号过多!; break;case 23: $msg = 登录失败,验证码失效!; break;case 32: $msg = 该帐号已经绑定其他xx帐号!; break;case 33: $msg = 一台电脑一天只能注册一个帐号!; break; } $this->error($msg, \, 5);}else{ $_SESSION[user_id] = 123456;//登录设置session $this->success(登录P网站成功, U(Index/index), 5);} } } /** * 获取验证码 */ public function getVerifyCode() { $img = $this->_cookieRequest(/VerifyCode_Login.aspx?id= . rand(10000,999999), null, true, 1); echo $img; } /** * 删除cookie */ public function clearCookie() { for($i = 0; $i cookieName); $i++) {setcookie($this->cookieName[$i], \, time() - 3600); }// unlink($this->cookiePathFile); $this->success(清除cookie成功!); } /** * 带COOKIE的访问curl * @param $url 访问地址 * @param bool|array $data 传递的数据 * @param bool $redirect 是否获取重定向的地址 * @return mixed 地址或者返回内容 */ public function _cookieRequest($url, $data = null, $redirect = false, $cookieNum = 0) { $ch = curl_init(); $params[CURLOPT_URL] = $url; //请求url地址 $params[CURLOPT_HEADER] = false; //是否返回响应头信息 $params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回 $params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向 $params[CURLOPT_USERAGENT] = Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/0101 Firefox/9.0.1; if($data) {$params[CURLOPT_POST] = true;$params[CURLOPT_POSTFIELDS] = http_build_query($data); } //判断是否有cookie,有的话直接使用 if (!empty($_COOKIE[$this->cookieName[$cookieNum]]) && is_file($this->cookiePathFile[$cookieNum])) {$params[CURLOPT_COOKIEFILE] = $this->cookiePathFile[$cookieNum]; //这里判断cookie } else {//$cookie_jar = tempnam($cookie_path, cookie); //产生一个cookie文件$params[CURLOPT_COOKIEJAR] = $this->cookiePathFile[$cookieNum]; //写入cookie信息setcookie($this->cookieName[$cookieNum], $this->cookiePathFile[$cookieNum], time() + 120); //保存cookie路径 } curl_setopt_array($ch, $params);//传入curl参数 $content = curl_exec($ch); $headers = curl_getinfo($ch);// echo $content; curl_close($ch); if ($url != $headers["url"] && $redirect == false) {return $headers["url"]; }return $content; }}登录以后,就可以使用带cookie的访问其他页面了!

骰子网页源码,ubuntu终端主题更改,有道爬虫错误0,php写qqbot,家居seo学习lzw

ps:php curl 登录淘宝

学生兼职信息网源码,ubuntu中法无法打字,透明代理爬虫,php 传送数值,潇风seolzw

提交上去后显示为填写验证码,登录不上去

填写验证码提交:

umto=&action=Authenticator&event_submit_do_login=anything&from=tb&fc=default&style=default&css_style=&tid=XOR_1_000000000000000000000000000000_63504554470A7C717F750278&support=000001&CtrlVersion=1,0,0,7&loginType=3&minititle=&minipara=&pstrong=&llnick=&sign=&need_sign=&isIgnore=&full_redirect=&popid=&callback=&guf=&not_duplite_str=&need_user_id=&poy=XOR_1_000000000000000000000000000000_625A424A45137C6F7A7F0B786D08&gvfdcname=&gvfdcre=&from_encoding=&TPL_redirect_url=http:&TPL_username=xxx&TPL_password=xxxx&need_check_code=&&TPL_checkcode=

提取验证码

/", $data, $arr); $post_fields = "umto=" . $arr[1] . "&" . $post_fields."&TPL_checkcode="; echo "" . $post_fields . "

" ; $ch = curl_init(/member/login.jhtml); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; QQWubi 133; Embedded Web Browser from: /; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Tablet PC 2.0; .NET4.0C; .NET4.0E; InfoPath.3; Media Center PC 6.0)"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_jar);curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_jar); $data = curl_exec($ch); curl_close($ch);preg_match("/img id=\"J_StandardCode_m\" src=\"(.*?)\" data-src=/", $data, $arr1); echo "";exit;?>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。