网页抓取手机号(web网页中,用户的一些行为,例如注册,修改密码)
优采云 发布时间: 2021-09-26 22:04网页抓取手机号(web网页中,用户的一些行为,例如注册,修改密码)
在网页中,一些用户行为,如注册、登录、支付、修改密码等,需要网站通过手机验证码确认其行为身份,以确保用户账号和网站 自己的安全。
一.简介
网页中的验证码一般是通过点击获取。在实现页面获取手机验证码按钮时,需要考虑以下几点:
这里我们主要实现前两个效果。
需要使用cookies来保证网页刷新后验证码倒计时不被清除。为避免篇幅过长,内容杂乱,不再赘述。
二.实现
该按钮可以通过以下两种方式实现获取验证码:
当手机号码输入格式正确时,按钮处于可点击状态。按钮一直处于可点击状态,但是当手机号码格式错误时,用户点击后会提示错误,不会向服务器发送请求。
虽然这两种方法的代码可能不同,但基本原理是相同的。这里我们只用第一种方法来说明。
一般验证码页面的HTML结构类似如下:
请输入手机号:
验证码:
页面如图:
输入正确格式的手机号码后,点击获取验证码按钮即可取消禁用状态。
点击后按钮再次进入禁用状态并开始倒计时。倒计时完成后,再次进入可点击状态。
具体实现过程比较简单。代码如下:
$(document).ready(function(){
var ordertime=20 //设置再次发送验证码等待时间
var timeleft=ordertime
var btn=$(".yzm")
var phone=$(".phone")
var reg = /^1[0-9]{10}$/; //电话号码的正则匹配式
phone.keyup(function(){
if (reg.test(phone.val())){
btn.removeAttr("disabled") //当号码符合规则后发送验证码按钮可点击
}
else{
btn.attr("disabled",true)
}
})
//计时函数
function timeCount(){
timeleft-=1
if (timeleft>0){
btn.val(timeleft+" 秒后重发");
setTimeout(timeCount,1000)
}
else {
btn.val("重新发送");
timeleft=ordertime //重置等待时间
btn.removeAttr("disabled");
}
}
//事件处理函数
btn.on("click",function(){
$(this).attr("disabled",true); //防止多次点击
//此处可添加 ajax请求 向后台发送 获取验证码请求
timeCount(this);
})
})
ajax请求格式大致如下,可以用来请求服务器向指定手机发送验证码
$.ajax({
type: "POST", //用POST方式传输
dataType: "text", //数据格式:JSON
url: 'Login.ashx', //目标地址
data: "dealType=" + dealType +"&uid=" + uid + "&code=" + code, //post携带数据
error: function () { }, //请求错误时的处理函数
success: function (){ }, //请求成功时执行的函数
});
另外,在实际开发中,还有ajax请求验证用户填写验证码与服务器等,再加上使用cookies来防止页面刷新导致倒计时失效,实际开发的代码量会比上面多很多。
但只要掌握了基本原理和实现思路,就可以轻松实现项目要求。
希望这个 文章 对你有帮助。