
网页手机号抓取程序
网页手机号抓取程序(网页手机号抓取程序!小白都能看懂的抓手机方法!)
网站优化 • 优采云 发表了文章 • 0 个评论 • 319 次浏览 • 2021-09-23 22:03
网页手机号抓取程序!小白都能看懂的抓手机号方法!两个流程的手机号库存脚本!一键抓手机号秘籍等着大家!感谢大家的支持,这个网页手机号抓取程序已经上架开源网,
楼上的有一个抓取10000次的脚本或者,先抓取这个网页,获取并记录手机号码再注册了,或者先网页注册,再抓取手机号码,还可以抓取验证码,app,小程序等,想得到手机号码只需要注册一个,一个大户拿到的都是经过两次。一次没有拿到可以考虑的方法就是,就算明知道拿不到,注册一个拿过来对应的信息再反馈过去,刷新就能获取到。或者找下载一个脚本的,但是是要网页可以抓取,自定义可以设置,我们想好的基本上每种类型的都可以。
你就说,让我一次性发10000个人就可以拿到你的手机号码,你看能不能成。
手机号验证的方法太多了,我一个一个试能试死的,你去网上找一篇要验证手机号的攻略全部试一遍试死你也就是试10秒。自己想要一个好点的话验证一下就太慢了,所以我这里告诉你如何通过爬虫接口爬取,然后接口提供验证方法,你照着做即可!第一步:当然就是发起请求,发送手机号验证请求。然后当返回数据给到我们时,通过http()方法给你做手机号验证,返回的响应就是你的手机号码,前提是请求的headers必须是以下的:'user-agent':'mozilla/5.0(windowsnt6.1;wow64)applewebkit/537.36(khtml,likegecko)chrome/56.0.3325.116safari/537.36'你也可以参照我写的这篇文章,一劳永逸。
听说关注我可以让你赚钱,那么我就关注你吧!/post_finance_cmder/web/post_finance_plus-multi/第二步:然后返回数据就是你要用到的信息,那么我就把它发给你。可以发送到/,或者/:,也可以发送到/。mozilla/5.0(windowsnt6.1;wow64)applewebkit/537.36(khtml,likegecko)chrome/56.0.3325.116safari/537.36当然请求别忘了带上/request:/wait/login/request_method=get/outlook//username=..@qq.*.qq.***第三步,返回的数据就是wx的数据,我们把图上的我们自己编写的程序嵌入其中。
wx,/***username=***@newsession()redirectingusername...*/wx.requests(formdata='map-info',username=username).send(newgetaddressforurl(content),//这个参数分别。 查看全部
网页手机号抓取程序(网页手机号抓取程序!小白都能看懂的抓手机方法!)
网页手机号抓取程序!小白都能看懂的抓手机号方法!两个流程的手机号库存脚本!一键抓手机号秘籍等着大家!感谢大家的支持,这个网页手机号抓取程序已经上架开源网,
楼上的有一个抓取10000次的脚本或者,先抓取这个网页,获取并记录手机号码再注册了,或者先网页注册,再抓取手机号码,还可以抓取验证码,app,小程序等,想得到手机号码只需要注册一个,一个大户拿到的都是经过两次。一次没有拿到可以考虑的方法就是,就算明知道拿不到,注册一个拿过来对应的信息再反馈过去,刷新就能获取到。或者找下载一个脚本的,但是是要网页可以抓取,自定义可以设置,我们想好的基本上每种类型的都可以。
你就说,让我一次性发10000个人就可以拿到你的手机号码,你看能不能成。
手机号验证的方法太多了,我一个一个试能试死的,你去网上找一篇要验证手机号的攻略全部试一遍试死你也就是试10秒。自己想要一个好点的话验证一下就太慢了,所以我这里告诉你如何通过爬虫接口爬取,然后接口提供验证方法,你照着做即可!第一步:当然就是发起请求,发送手机号验证请求。然后当返回数据给到我们时,通过http()方法给你做手机号验证,返回的响应就是你的手机号码,前提是请求的headers必须是以下的:'user-agent':'mozilla/5.0(windowsnt6.1;wow64)applewebkit/537.36(khtml,likegecko)chrome/56.0.3325.116safari/537.36'你也可以参照我写的这篇文章,一劳永逸。
听说关注我可以让你赚钱,那么我就关注你吧!/post_finance_cmder/web/post_finance_plus-multi/第二步:然后返回数据就是你要用到的信息,那么我就把它发给你。可以发送到/,或者/:,也可以发送到/。mozilla/5.0(windowsnt6.1;wow64)applewebkit/537.36(khtml,likegecko)chrome/56.0.3325.116safari/537.36当然请求别忘了带上/request:/wait/login/request_method=get/outlook//username=..@qq.*.qq.***第三步,返回的数据就是wx的数据,我们把图上的我们自己编写的程序嵌入其中。
wx,/***username=***@newsession()redirectingusername...*/wx.requests(formdata='map-info',username=username).send(newgetaddressforurl(content),//这个参数分别。
网页手机号抓取程序(亿速云网站:请求后台解密获取用户手机号直接上干货)
网站优化 • 优采云 发表了文章 • 0 个评论 • 126 次浏览 • 2021-09-23 17:01
这个内容主要是解释“如何授权手机号码-goneNumber”,“感兴趣的朋友可能会看看。本文中介绍的方法简单又快速实用。让我们拿一个小系列带你”如何授权手机号码-GetPhoneNumber“”微信小程序用户“!”
前言
applet有一个api,让用户非常方便,是让用户的手机号码通过getphonumber绑定到微信。要注意的一件事要注意,现在微信并注意用户体验,需要一些方法需要主动触发呼叫,如GetPhonenumber。
实现:
1、通过wx.login获取代码,收益OpenID和Sessionkey
2、 get encrypteddata,iv
通过getphonenumber
3、 pass参数[encypteddata],[iv],[sessionkey]请求背景解密用户手机号
直接交付:
1、用词点单击以获取用户手机号码按钮
获取用户手机号
2、弹出授权图片:
3、获取手机号
通过解密
直接代码:
wxlogin: function() { //获取用户的openID和sessionKey
var that = this;
wx.login({
//获取code 使用wx.login得到的登陆凭证,用于换取openid
success: (res) = >{
wx.request({
method: "GET",
url: 'https://xxxwx/wxlogin.do',
data: {
code: res.code,
appId: "appIdSbcx",
appKey: "appKeySbcx"
},
header: {
'content-type': 'application/json' // 默认值
},
success: (res) = >{
console.log(res);
that.setData({
sessionKey: res.data.session_key
});
}
});
}
});
}
getPhoneNumber: function(e) { //点击获取手机号码按钮
var that = this;
wx.checkSession({
success: function() {
console.log(e.detail.errMsg)
console.log(e.detail.iv)
console.log(e.detail.encryptedData)
var ency = e.detail.encryptedData;
var iv = e.detail.iv;
var sessionk = that.data.sessionKey;
if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
that.setData({
modalstatus: true
});
} else { //同意授权
wx.request({
method: "GET",
url: 'https://xxx/wx/deciphering.do',
data: {
encrypdata: ency,
ivdata: iv,
sessionkey: sessionk
},
header: {
'content-type': 'application/json' // 默认值
},
success: (res) = >{
console.log("解密成功~~~~~~~将解密的号码保存到本地~~~~~~~~");
console.log(res);
var phone = res.data.phoneNumber;
console.log(phone);
},
fail: function(res) {
console.log("解密失败~~~~~~~~~~~~~");
console.log(res);
}
});
}
},
fail: function() {
console.log("session_key 已经失效,需要重新执行登录流程");
that.wxlogin(); //重新登录
}
});
}
背景代码:
/**
* 解密并且获取用户手机号码
* @param encrypdata
* @param ivdata
* @param sessionkey
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "deciphering", method = RequestMethod.GET)
public @ResponseBody String deciphering(String encrypdata,
String ivdata, String sessionkey,
HttpServletRequest request) {
byte[] encrypData = Base64.decode(encrypdata);
byte[] ivData = Base64.decode(ivdata);
byte[] sessionKey = Base64.decode(sessionkey);
String str="";
try {
str = decrypt(sessionKey,ivData,encrypData);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(str);
return str;
}
public static String decrypt(byte[] key, byte[] iv, byte[] encData) throws Exception {
AlgorithmParameterSpec ivSpec = new IvParameterSpec(iv);
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
SecretKeySpec keySpec = new SecretKeySpec(key, "AES");
cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
//解析解密后的字符串
return new String(cipher.doFinal(encData),"UTF-8");
}
摘要
在这里,我相信每个人都有更深入的了解“如何授权手机号码-GethoneNumber”“微信小程序”,“我必须实际上有一件事!这是亿速云网站,更多相关内容可以进入相关渠道查询,注意我们,继续学习! 查看全部
网页手机号抓取程序(亿速云网站:请求后台解密获取用户手机号直接上干货)
这个内容主要是解释“如何授权手机号码-goneNumber”,“感兴趣的朋友可能会看看。本文中介绍的方法简单又快速实用。让我们拿一个小系列带你”如何授权手机号码-GetPhoneNumber“”微信小程序用户“!”
前言
applet有一个api,让用户非常方便,是让用户的手机号码通过getphonumber绑定到微信。要注意的一件事要注意,现在微信并注意用户体验,需要一些方法需要主动触发呼叫,如GetPhonenumber。
实现:
1、通过wx.login获取代码,收益OpenID和Sessionkey
2、 get encrypteddata,iv
通过getphonenumber
3、 pass参数[encypteddata],[iv],[sessionkey]请求背景解密用户手机号
直接交付:
1、用词点单击以获取用户手机号码按钮
获取用户手机号
2、弹出授权图片:

3、获取手机号
通过解密

直接代码:
wxlogin: function() { //获取用户的openID和sessionKey
var that = this;
wx.login({
//获取code 使用wx.login得到的登陆凭证,用于换取openid
success: (res) = >{
wx.request({
method: "GET",
url: 'https://xxxwx/wxlogin.do',
data: {
code: res.code,
appId: "appIdSbcx",
appKey: "appKeySbcx"
},
header: {
'content-type': 'application/json' // 默认值
},
success: (res) = >{
console.log(res);
that.setData({
sessionKey: res.data.session_key
});
}
});
}
});
}
getPhoneNumber: function(e) { //点击获取手机号码按钮
var that = this;
wx.checkSession({
success: function() {
console.log(e.detail.errMsg)
console.log(e.detail.iv)
console.log(e.detail.encryptedData)
var ency = e.detail.encryptedData;
var iv = e.detail.iv;
var sessionk = that.data.sessionKey;
if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
that.setData({
modalstatus: true
});
} else { //同意授权
wx.request({
method: "GET",
url: 'https://xxx/wx/deciphering.do',
data: {
encrypdata: ency,
ivdata: iv,
sessionkey: sessionk
},
header: {
'content-type': 'application/json' // 默认值
},
success: (res) = >{
console.log("解密成功~~~~~~~将解密的号码保存到本地~~~~~~~~");
console.log(res);
var phone = res.data.phoneNumber;
console.log(phone);
},
fail: function(res) {
console.log("解密失败~~~~~~~~~~~~~");
console.log(res);
}
});
}
},
fail: function() {
console.log("session_key 已经失效,需要重新执行登录流程");
that.wxlogin(); //重新登录
}
});
}
背景代码:
/**
* 解密并且获取用户手机号码
* @param encrypdata
* @param ivdata
* @param sessionkey
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "deciphering", method = RequestMethod.GET)
public @ResponseBody String deciphering(String encrypdata,
String ivdata, String sessionkey,
HttpServletRequest request) {
byte[] encrypData = Base64.decode(encrypdata);
byte[] ivData = Base64.decode(ivdata);
byte[] sessionKey = Base64.decode(sessionkey);
String str="";
try {
str = decrypt(sessionKey,ivData,encrypData);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(str);
return str;
}
public static String decrypt(byte[] key, byte[] iv, byte[] encData) throws Exception {
AlgorithmParameterSpec ivSpec = new IvParameterSpec(iv);
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
SecretKeySpec keySpec = new SecretKeySpec(key, "AES");
cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
//解析解密后的字符串
return new String(cipher.doFinal(encData),"UTF-8");
}
摘要
在这里,我相信每个人都有更深入的了解“如何授权手机号码-GethoneNumber”“微信小程序”,“我必须实际上有一件事!这是亿速云网站,更多相关内容可以进入相关渠道查询,注意我们,继续学习!
网页手机号抓取程序(爬虫访问小程序内页面时,会携带特定的user-agent)
网站优化 • 优采云 发表了文章 • 0 个评论 • 79 次浏览 • 2021-09-22 14:00
在2019年上半年,微信根据小程序页发行搜索。为了更好地发现和理解小程序的页面,结合我们在过去的一段时间内遇到的各种情况,我们强烈推荐开发人员。一些宝贵的时间仔细阅读了本文:)
当爬网程序访问小程序中的页面时,它将携带特定的用户 - 代理“MPCrawler”和场景:1129
1.小程序页(网址)直接打开。
小程序页面中的跳跃URL是我们爬网的发现页面的重要来源,搜索引擎调用的结果页面(URL)必须能够直接打开,而不是依赖于上下文状态。特殊:推荐页面所需的参数收录在URL
中
2. page跳转优先级导航器组件。
applet提供两种类型的页面:
a.navigator组件
b。路由API,包括NavigateTo / redirectto / switchtab / navigateback / stranslaunch
建议使用导航器组件。如果您必须使用API,则可以在访问爬网程序时屏蔽时间锁定或可变锁以单击设置。
3.清除和简单的页面参数。
querystring,清除,简洁,参数,对爬行和后续分析有很大的帮助,但JSON数据实现了差。
4.用户请求用户授权,登录和绑定移动电话号码等。
建议要求用户授权(例如读文章可以是匿名的,并且评论需要命名)。
5.我们没有收录 web-view任何东西。
我们不能为时间做到这一点。在很长一段时间里,我们可能不这样做。
6.使用sitemap配置爬虫的指导,同时屏蔽路径而无需搜索值。
7.设置一个清晰的标题和页面缩略图。
页面标题和缩略图在我们的理解页面中具有重要作用,并增加曝光转换。
使用wx.setNavigationBartitle或自定义前进内容OnShareAppMessage,页面的标题和缩略图设置还提供给视频,音频组件重新介绍了海报/后爬行物。
8.使用页面路径推送功能
可以丰富微信可以收录,然后改善小程序内容的曝光机会。请参阅: 查看全部
网页手机号抓取程序(爬虫访问小程序内页面时,会携带特定的user-agent)
在2019年上半年,微信根据小程序页发行搜索。为了更好地发现和理解小程序的页面,结合我们在过去的一段时间内遇到的各种情况,我们强烈推荐开发人员。一些宝贵的时间仔细阅读了本文:)
当爬网程序访问小程序中的页面时,它将携带特定的用户 - 代理“MPCrawler”和场景:1129
1.小程序页(网址)直接打开。
小程序页面中的跳跃URL是我们爬网的发现页面的重要来源,搜索引擎调用的结果页面(URL)必须能够直接打开,而不是依赖于上下文状态。特殊:推荐页面所需的参数收录在URL
中
2. page跳转优先级导航器组件。
applet提供两种类型的页面:
a.navigator组件
b。路由API,包括NavigateTo / redirectto / switchtab / navigateback / stranslaunch
建议使用导航器组件。如果您必须使用API,则可以在访问爬网程序时屏蔽时间锁定或可变锁以单击设置。
3.清除和简单的页面参数。
querystring,清除,简洁,参数,对爬行和后续分析有很大的帮助,但JSON数据实现了差。
4.用户请求用户授权,登录和绑定移动电话号码等。
建议要求用户授权(例如读文章可以是匿名的,并且评论需要命名)。
5.我们没有收录 web-view任何东西。
我们不能为时间做到这一点。在很长一段时间里,我们可能不这样做。
6.使用sitemap配置爬虫的指导,同时屏蔽路径而无需搜索值。
7.设置一个清晰的标题和页面缩略图。
页面标题和缩略图在我们的理解页面中具有重要作用,并增加曝光转换。
使用wx.setNavigationBartitle或自定义前进内容OnShareAppMessage,页面的标题和缩略图设置还提供给视频,音频组件重新介绍了海报/后爬行物。
8.使用页面路径推送功能
可以丰富微信可以收录,然后改善小程序内容的曝光机会。请参阅:
网页手机号抓取程序(网页手机号抓取程序、导航电脑端互动互动来喽)
网站优化 • 优采云 发表了文章 • 0 个评论 • 160 次浏览 • 2021-09-20 10:03
网页手机号抓取程序、导航电脑端互动抓取程序、地图api接口互动来喽xx爬虫论坛这里有蛮多网站可以下载的。不过有不少网站使用了特殊情况需要仔细辨别,即使你知道这些也不一定能得到你想要的。
如果airdrop之类的会丢,可以尝试用pc上的抓包软件,
airdrop是本地的,所以其实原理就是链接的服务器先检测airdrop链接的端是否同一个,如果同一个。那么可以获取到airdrop网址。然后用手机或电脑自带浏览器,查看对应网站的url。手机和电脑就能够互相直接链接到对方了。其实airdrop只要你连着同一个wifi,就能实现互相更新数据。
去你常去的网站下个同步助手
最简单的就是去一些服务器下载,然后用抓包工具抓取,
以下代码仅用于pc操作,手机操作不适用。
1、打开百度,搜索“无线网抓包”之类的关键词。点击进入,然后在右侧网站栏点击“百度卫士”,查看这个网站的来源。
2、然后打开手机浏览器,输入百度卫士,在界面中点击“无线连接”。浏览器搜索框中点击“无线连接”,找到“无线网抓包”这个网址,然后点击进入。
3、浏览器中进入“无线网抓包”,然后你需要访问下面这个网址:。手机网页中也是一样的。
4、最后,点击“去开始”,手机就会自动下载百度卫士。
5、手机下载好百度卫士,然后回到电脑上面,输入网址:,或者在手机上百度中也可以抓包。推荐,这样抓取代码的难度小一些。基本没什么安全隐患。 查看全部
网页手机号抓取程序(网页手机号抓取程序、导航电脑端互动互动来喽)
网页手机号抓取程序、导航电脑端互动抓取程序、地图api接口互动来喽xx爬虫论坛这里有蛮多网站可以下载的。不过有不少网站使用了特殊情况需要仔细辨别,即使你知道这些也不一定能得到你想要的。
如果airdrop之类的会丢,可以尝试用pc上的抓包软件,
airdrop是本地的,所以其实原理就是链接的服务器先检测airdrop链接的端是否同一个,如果同一个。那么可以获取到airdrop网址。然后用手机或电脑自带浏览器,查看对应网站的url。手机和电脑就能够互相直接链接到对方了。其实airdrop只要你连着同一个wifi,就能实现互相更新数据。
去你常去的网站下个同步助手
最简单的就是去一些服务器下载,然后用抓包工具抓取,
以下代码仅用于pc操作,手机操作不适用。
1、打开百度,搜索“无线网抓包”之类的关键词。点击进入,然后在右侧网站栏点击“百度卫士”,查看这个网站的来源。
2、然后打开手机浏览器,输入百度卫士,在界面中点击“无线连接”。浏览器搜索框中点击“无线连接”,找到“无线网抓包”这个网址,然后点击进入。
3、浏览器中进入“无线网抓包”,然后你需要访问下面这个网址:。手机网页中也是一样的。
4、最后,点击“去开始”,手机就会自动下载百度卫士。
5、手机下载好百度卫士,然后回到电脑上面,输入网址:,或者在手机上百度中也可以抓包。推荐,这样抓取代码的难度小一些。基本没什么安全隐患。
网页手机号抓取程序(手机应用抓取通讯录信息用户普遍存疑虑针对目前行为表示疑虑)
网站优化 • 优采云 发表了文章 • 0 个评论 • 79 次浏览 • 2021-09-17 23:03
飞翔网(魏德玲/文)目前,很多移动社交应用都添加了捕捉用户关系的功能。当用户需要寻找社会关系时,这些应用程序将读取用户通讯簿中的信息并自动匹配。其中包括手机制造商HTC的htcsense、UCWEB中的UC paradise,以及最近流行的KIK应用程序,如kikmessanger、meter chat、微信等。大多数用户对这种捕获通讯簿的行为表示怀疑
移动应用程序获取通讯簿信息
目前,业内有观点认为社交应用的核心在于“用户关系”,而用户手机通讯录中的社交关系网络价值巨大,长期以来没有被电信运营商和互联网巨头有效利用。据报道,一些移动应用程序,如即时消息、社交网络和联系人备份,现在都参与了在用户的手机通讯簿中捕捉这种关系
记者发现,当用户使用htcsense添加好友时,系统会自动在用户的联系人中搜索使用htcsense的人,用户可以直接添加为好友,而无需单独添加联系人信息。之后,用户可以在不同的移动应用程序上查看朋友的评论
此外,htcsense可以通过自动检索用户Facebook、twitter、电子邮件地址和其他信息来集成同一联系人的多个信息。用户无需手动逐个录入即可完成联系人信息的补充和排序
据了解,UC paradise功能已绑定在国内移动浏览器UCWEB中,用户可在该浏览器中选择从通讯录中寻找朋友。在试用过程中,记者可以直接匹配电话簿中的四位实名好友,并直接添加好友
KIK在国内外的应用也在增加。腾讯最近加入了这个阵营,推出了下一个产品微信。KIK应用程序主要基于用户手机中的联系人目录捕获关系。只要将客户端加载到联系人中,用户就可以开始类似于SMS的聊天,而无需添加它。以kikmessanger为例,它涉及诸如读取用户联系信息、电话状态和身份等权限
用户普遍持怀疑态度
针对目前手机应用开始普遍捕捉用户电话簿信息的现状,记者发现,多数网民通过询问部分用户对此表示担忧
“这是一个个人隐私问题。毕竟,你的朋友告诉你这个号码是出于对你的信任,所以你有义务为你的朋友保护这个小小的隐私,”一位名叫kelxins的网民说。其他网民也表示,虽然目前抓取通讯录没有受到影响,但他们感到不安全。其他人认为有必要划分应用程序的类型。例如,输入法之类的应用程序可以自己输入
去年10月,由于扫描用户通讯簿的问题,UC浏览器中的UC paradise受到用户和媒体的质疑。当时,一些用户表示,他们的隐私提示不够清晰,在使用前无法理解所涉及的权限。坎特伯雷大学表示,坎特伯雷大学天堂是一个基于真实用户的大型社交平台,还可以帮助用户通过阅读自己的位置找到附近的朋友 查看全部
网页手机号抓取程序(手机应用抓取通讯录信息用户普遍存疑虑针对目前行为表示疑虑)
飞翔网(魏德玲/文)目前,很多移动社交应用都添加了捕捉用户关系的功能。当用户需要寻找社会关系时,这些应用程序将读取用户通讯簿中的信息并自动匹配。其中包括手机制造商HTC的htcsense、UCWEB中的UC paradise,以及最近流行的KIK应用程序,如kikmessanger、meter chat、微信等。大多数用户对这种捕获通讯簿的行为表示怀疑
移动应用程序获取通讯簿信息
目前,业内有观点认为社交应用的核心在于“用户关系”,而用户手机通讯录中的社交关系网络价值巨大,长期以来没有被电信运营商和互联网巨头有效利用。据报道,一些移动应用程序,如即时消息、社交网络和联系人备份,现在都参与了在用户的手机通讯簿中捕捉这种关系
记者发现,当用户使用htcsense添加好友时,系统会自动在用户的联系人中搜索使用htcsense的人,用户可以直接添加为好友,而无需单独添加联系人信息。之后,用户可以在不同的移动应用程序上查看朋友的评论
此外,htcsense可以通过自动检索用户Facebook、twitter、电子邮件地址和其他信息来集成同一联系人的多个信息。用户无需手动逐个录入即可完成联系人信息的补充和排序
据了解,UC paradise功能已绑定在国内移动浏览器UCWEB中,用户可在该浏览器中选择从通讯录中寻找朋友。在试用过程中,记者可以直接匹配电话簿中的四位实名好友,并直接添加好友
KIK在国内外的应用也在增加。腾讯最近加入了这个阵营,推出了下一个产品微信。KIK应用程序主要基于用户手机中的联系人目录捕获关系。只要将客户端加载到联系人中,用户就可以开始类似于SMS的聊天,而无需添加它。以kikmessanger为例,它涉及诸如读取用户联系信息、电话状态和身份等权限
用户普遍持怀疑态度
针对目前手机应用开始普遍捕捉用户电话簿信息的现状,记者发现,多数网民通过询问部分用户对此表示担忧
“这是一个个人隐私问题。毕竟,你的朋友告诉你这个号码是出于对你的信任,所以你有义务为你的朋友保护这个小小的隐私,”一位名叫kelxins的网民说。其他网民也表示,虽然目前抓取通讯录没有受到影响,但他们感到不安全。其他人认为有必要划分应用程序的类型。例如,输入法之类的应用程序可以自己输入
去年10月,由于扫描用户通讯簿的问题,UC浏览器中的UC paradise受到用户和媒体的质疑。当时,一些用户表示,他们的隐私提示不够清晰,在使用前无法理解所涉及的权限。坎特伯雷大学表示,坎特伯雷大学天堂是一个基于真实用户的大型社交平台,还可以帮助用户通过阅读自己的位置找到附近的朋友
网页手机号抓取程序(爬取公司内部邮箱的通讯录,获取所有用户的手机号码!)
网站优化 • 优采云 发表了文章 • 0 个评论 • 144 次浏览 • 2021-09-17 07:04
前段时间,我收到一位业务人员的爬虫请求,要求我对公司内部邮箱的地址簿进行爬虫,获取所有用户的手机号码,并建立相应的业务推广白名单
1、需求解释
首先,我们公司的邮箱是outlook的邮箱。只有登录邮箱才能看到整个公司的通讯录,因为员工数量很多(将近一百万名员工)。首先,让我们看一下具体的电子邮件联系人列表:
子公司的名称列在目录中。点击子公司后,会列出子公司的人员列表,点击人员时会显示具体的手机号及相关信息
2、建造爬行动物前的准备
首先,这个需求需要不断的点击相应的项目来获取相应用户的手机号。但是,此人的页面上有很多人,并且没有相应的分页标志。只有一个滚动条可以上下拉动。有很多内容,至少有上万条,所以你需要不断地点击这个人的信息
我以前想过用普通的爬行工具爬行,但是工作人员没有发现明显的规律性。它们不能通过简单的遍历直接获得相应的数据。另外,数据加载也是通过相应的JavaScript脚本和Ajax来实现的,所以我暂时没有更好的解决方案(PS:天哪,如果你有更好的解决方案,请给我一些建议。)
通过查阅相应的爬虫工具库,我们最终找到了一个用于自动测试的python库(selenium库)。该库的一个优点是,它可以像人类一样连续单击鼠标以获取相应的内容。通过模拟人类相应的操作,我们可以直接获得相应的内容。具体使用请百度(因为模拟浏览器不断点击,所有用户都需要下载相应的浏览器驱动程序)
3、crawler的实现
不用多说,直接上代码是最真实的
# -*- coding: utf-8 -*-
"""
Created on Tue Jan 30 21:18:12 2018
"""
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import TimeoutException
from selenium.common.exceptions import WebDriverException
import time
browser = webdriver.Chrome()
wait = WebDriverWait(browser,20)
def login_outlook():
# 模仿浏览器进行登录操作
#需要爬去邮箱的地址
browser.get('--------------------------')
username = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR,'#username')))
passwd = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR,'#password')))
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'#lgnDiv > div.signInEnter > div > span')))
#邮箱的用户名
username.send_keys('username')
#邮箱登录密码
passwd.send_keys('password')
submit.click()
def main():
# 登录
login_outlook()
time.sleep(5)
# 点击人员选项
submit_renyuan = wait.until(
EC.element_to_be_clickable((By.CSS_SELECTOR,'#_ariaId_19')))
submit_renyuan.click()
# 点击所有用户
submit_allyonghu = wait.until(
EC.element_to_be_clickable((By.XPATH,'//*[@id="_ariaId_452"]/div[1]/div[2]/div/div[2]/span')))
submit_allyonghu.click()
#遍历所有的用户
result =[]
# select_header ='''body > div._n_X4 > div > div._n_p.csimg.image-headerbgmain-png > div:nth-child(3) > div:nth-child(2) > div._ph_S > div:nth-child(3) > div:nth-child(1) > div._ph_j1 > div:nth-child(1) > div > div > div._ph_V1.customScrollBar.scrollContainer > div > div > div:nth-child('''
# select_tail =''') > span > div > span._pe_b._pe_s > span'''
Xpath_head = '''/html/body/div[2]/div/div[3]/div[3]/div[2]/div[2]/div[3]/div[1]/div[2]/div[1]/div/div/div[1]/div/div/div['''
Xpath_tail = ''']/span/div/span[3]/span'''
wait1 = WebDriverWait(browser,2)
#这里的10000是人为设定的,因为不知道这个页面上面具体有多少用户
for j in range(1,10000):
print(j)
for i in range(1,71):
print(i)
Xpath = Xpath_head + str(i) + Xpath_tail
print(Xpath)
try:
submit_ren = wait1.until(
EC.element_to_be_clickable((By.XPATH,Xpath)))
submit_ren.click()
except(NoSuchElementException,TimeoutException,WebDriverException):
print("连接超时")
continue
time.sleep(0.18)
# result.append(wait.until(
# EC.element_to_be_clickable((By.CSS_SELECTOR,'body > div._n_X4 > div > div._n_p.csimg.image-headerbgmain-png > div:nth-child(3) > div:nth-child(2) > div._ph_S > div:nth-child(3) > div:nth-child(4) > div:nth-child(2) > div > div:nth-child(3) > div._rpc_s > div:nth-child(1) > div > div > div:nth-child(1) > div > div > div'))))
#获取到相应的手机号码文本
rr=browser.find_element_by_xpath("/html/body/div[2]/div/div[3]/div[3]/div[2]/div[2]/div[3]/div[4]/div[2]/div/div[3]/div[4]/div[1]/div/div/div[1]/div/div/div")
saveFile = open('telno.txt','a')
saveFile.write(str(rr.text.replace("\n","|")))
saveFile.write("\n")
saveFile.close()
time.sleep(1)
if __name__ == '__main__':
main()
4、结果分析和改进领域
通过整个爬行过程,发现爬行器存在以下缺点:
(1).虽然可以检索到对应用户的手机号码,但是号码不一定完整,一个人设置10000,这是非常不合理的,因为我们不知道有多少用户,所以我们设置了一个很大的号码,但是这个方法是非常不合适的
(2).在爬行过程中,发现模拟的点击没有一一点击,存在跳跃现象,这也是爬行不完全的原因之一,原因是我们不了解页面加载方式和具体的数据加载方式,从而找到相应的规律(向伟大的上帝寻求指引)
(3)爬网的成功与服务器的响应时间也有关系,造成这种现象的原因有两个:一是用户没有对应的手机号码(这种现象确实存在,但是号码很小)另一方面,服务器的响应时间相对较慢,在服务器返回对应用户的手机号码之前,程序开始点击下一个用户
(4)注意,最好让程序休眠一段时间(即代码中的time.sleep())模拟点击时,一方面是等待服务器的相应响应,另一方面也是模拟人,因为如果点击太快,会被识别为攻击,你的IP地址会被短时间封锁
最后,由于爬虫可以爬行到用户的手机号,有很多问题需要解决,而且最后一个爬虫的手机号不是最完整的,所以爬虫程序还有很大的改进空间。(我以后会继续改进) 查看全部
网页手机号抓取程序(爬取公司内部邮箱的通讯录,获取所有用户的手机号码!)
前段时间,我收到一位业务人员的爬虫请求,要求我对公司内部邮箱的地址簿进行爬虫,获取所有用户的手机号码,并建立相应的业务推广白名单
1、需求解释
首先,我们公司的邮箱是outlook的邮箱。只有登录邮箱才能看到整个公司的通讯录,因为员工数量很多(将近一百万名员工)。首先,让我们看一下具体的电子邮件联系人列表:

子公司的名称列在目录中。点击子公司后,会列出子公司的人员列表,点击人员时会显示具体的手机号及相关信息
2、建造爬行动物前的准备
首先,这个需求需要不断的点击相应的项目来获取相应用户的手机号。但是,此人的页面上有很多人,并且没有相应的分页标志。只有一个滚动条可以上下拉动。有很多内容,至少有上万条,所以你需要不断地点击这个人的信息
我以前想过用普通的爬行工具爬行,但是工作人员没有发现明显的规律性。它们不能通过简单的遍历直接获得相应的数据。另外,数据加载也是通过相应的JavaScript脚本和Ajax来实现的,所以我暂时没有更好的解决方案(PS:天哪,如果你有更好的解决方案,请给我一些建议。)
通过查阅相应的爬虫工具库,我们最终找到了一个用于自动测试的python库(selenium库)。该库的一个优点是,它可以像人类一样连续单击鼠标以获取相应的内容。通过模拟人类相应的操作,我们可以直接获得相应的内容。具体使用请百度(因为模拟浏览器不断点击,所有用户都需要下载相应的浏览器驱动程序)
3、crawler的实现
不用多说,直接上代码是最真实的
# -*- coding: utf-8 -*-
"""
Created on Tue Jan 30 21:18:12 2018
"""
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import TimeoutException
from selenium.common.exceptions import WebDriverException
import time
browser = webdriver.Chrome()
wait = WebDriverWait(browser,20)
def login_outlook():
# 模仿浏览器进行登录操作
#需要爬去邮箱的地址
browser.get('--------------------------')
username = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR,'#username')))
passwd = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR,'#password')))
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'#lgnDiv > div.signInEnter > div > span')))
#邮箱的用户名
username.send_keys('username')
#邮箱登录密码
passwd.send_keys('password')
submit.click()
def main():
# 登录
login_outlook()
time.sleep(5)
# 点击人员选项
submit_renyuan = wait.until(
EC.element_to_be_clickable((By.CSS_SELECTOR,'#_ariaId_19')))
submit_renyuan.click()
# 点击所有用户
submit_allyonghu = wait.until(
EC.element_to_be_clickable((By.XPATH,'//*[@id="_ariaId_452"]/div[1]/div[2]/div/div[2]/span')))
submit_allyonghu.click()
#遍历所有的用户
result =[]
# select_header ='''body > div._n_X4 > div > div._n_p.csimg.image-headerbgmain-png > div:nth-child(3) > div:nth-child(2) > div._ph_S > div:nth-child(3) > div:nth-child(1) > div._ph_j1 > div:nth-child(1) > div > div > div._ph_V1.customScrollBar.scrollContainer > div > div > div:nth-child('''
# select_tail =''') > span > div > span._pe_b._pe_s > span'''
Xpath_head = '''/html/body/div[2]/div/div[3]/div[3]/div[2]/div[2]/div[3]/div[1]/div[2]/div[1]/div/div/div[1]/div/div/div['''
Xpath_tail = ''']/span/div/span[3]/span'''
wait1 = WebDriverWait(browser,2)
#这里的10000是人为设定的,因为不知道这个页面上面具体有多少用户
for j in range(1,10000):
print(j)
for i in range(1,71):
print(i)
Xpath = Xpath_head + str(i) + Xpath_tail
print(Xpath)
try:
submit_ren = wait1.until(
EC.element_to_be_clickable((By.XPATH,Xpath)))
submit_ren.click()
except(NoSuchElementException,TimeoutException,WebDriverException):
print("连接超时")
continue
time.sleep(0.18)
# result.append(wait.until(
# EC.element_to_be_clickable((By.CSS_SELECTOR,'body > div._n_X4 > div > div._n_p.csimg.image-headerbgmain-png > div:nth-child(3) > div:nth-child(2) > div._ph_S > div:nth-child(3) > div:nth-child(4) > div:nth-child(2) > div > div:nth-child(3) > div._rpc_s > div:nth-child(1) > div > div > div:nth-child(1) > div > div > div'))))
#获取到相应的手机号码文本
rr=browser.find_element_by_xpath("/html/body/div[2]/div/div[3]/div[3]/div[2]/div[2]/div[3]/div[4]/div[2]/div/div[3]/div[4]/div[1]/div/div/div[1]/div/div/div")
saveFile = open('telno.txt','a')
saveFile.write(str(rr.text.replace("\n","|")))
saveFile.write("\n")
saveFile.close()
time.sleep(1)
if __name__ == '__main__':
main()
4、结果分析和改进领域
通过整个爬行过程,发现爬行器存在以下缺点:
(1).虽然可以检索到对应用户的手机号码,但是号码不一定完整,一个人设置10000,这是非常不合理的,因为我们不知道有多少用户,所以我们设置了一个很大的号码,但是这个方法是非常不合适的
(2).在爬行过程中,发现模拟的点击没有一一点击,存在跳跃现象,这也是爬行不完全的原因之一,原因是我们不了解页面加载方式和具体的数据加载方式,从而找到相应的规律(向伟大的上帝寻求指引)
(3)爬网的成功与服务器的响应时间也有关系,造成这种现象的原因有两个:一是用户没有对应的手机号码(这种现象确实存在,但是号码很小)另一方面,服务器的响应时间相对较慢,在服务器返回对应用户的手机号码之前,程序开始点击下一个用户
(4)注意,最好让程序休眠一段时间(即代码中的time.sleep())模拟点击时,一方面是等待服务器的相应响应,另一方面也是模拟人,因为如果点击太快,会被识别为攻击,你的IP地址会被短时间封锁
最后,由于爬虫可以爬行到用户的手机号,有很多问题需要解决,而且最后一个爬虫的手机号不是最完整的,所以爬虫程序还有很大的改进空间。(我以后会继续改进)
网页手机号抓取程序( 微信小程序开发之获取用户手机号码,文中示例代码介绍)
网站优化 • 优采云 发表了文章 • 0 个评论 • 194 次浏览 • 2021-09-17 07:01
微信小程序开发之获取用户手机号码,文中示例代码介绍)
微信小程序开发,获取用户手机号(PHP接口解密)
更新时间:2020年5月17日16:33:10作者:逍遥云天
本文文章主要介绍微信applet的开发,获取用户手机号。通过实例代码对其进行了详细的介绍,对大家的学习或工作有一定的参考价值。有需要的朋友,让我们和小编一起学习
稍后制作微信小程序,获取用户微信绑定的手机号。小程序开发文档中提供的获取移动电话号码的接口(getphonenumber())返回密文,需要在服务器上解密。然而,该官员提供的开发文件与以往一样混乱。如果不全面了解applet开发文档,理解解密过程仍然有点困难。这里,小程序从请求用户授权获取移动电话号码到获取移动电话号码的明文的整个过程被链接以便于快速理解,如下所示:
一.前端相关操作:
1.请求用户授权获取手机号码:
由于用户需要主动触发启动接口获取手机号,所以API没有调用此功能,需要点击组件触发,如下图:
wxml:
获取手机号码
js:
Page({
getPhoneNumber: function(e) {
if(e.detail.errMsg == "getPhoneNumber:fail user deny") return; //用户允许授权
console.log("lv", e.detail.iv); //包括敏感数据在内的完整用户信息的加密数据,需要解密
console.log(e.detail.encryptedData); //加密算法的初始向量,解密需要用到
......
}
})
2.access小程序登录界面:
小程序调用Wx。Login()获取临时登录证书代码并将其发送到开发人员服务器
Page({
getPhoneNumber: function(e) {
console.log(e.detail.errMsg)
console.log(e.detail.iv) //包括敏感数据在内的完整用户信息的加密数据,需要解密
console.log(e.detail.encryptedData) //加密算法的初始向量,解密需要用到
wx.login({
success: res => {
if(res.code){
console.log(res.code)
}
}
})
}
})
3.访问腾讯服务器登录证书验证界面:
注意:官方建议将其放在服务器端。这里,为了方便起见,将其放在前端请求上
请注意以下参数:
阿皮德
小程序唯一ID
秘密
applet的应用程序秘密
js_uu代码
登录时获取的代码
格兰特型
填写授权代码
//2. 访问登录凭证校验接口获取session_key
wx.request({
url: "https://api.weixin.qq.com/sns/jscode2session",
data: {
'appid': "xxxxxxxx",
'secret': "xxxxxxxx",
'js_code': res.code,
'grant_type': "authorization_code"
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
}, // 设置请求的 header
success: function(data) {
console.log("data", data.data.session_key)
},
fail: function(err) {
console.log(err);
}
})
4.在您自己的服务器上解密
注:解密接口可以使用腾讯官方演示进行修改。具体的转换将在后面描述
//3. 解密
wx.request({
url: 'http://xxxxx.com/demo/demo.php',//腾讯官方demo改造的接口页面
data: {
'encryptedData': encodeURIComponent(e.detail.encryptedData),//需要进行编码
'iv': e.detail.iv,
'session_key': data.data.session_key
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
}, // 设置请求的 header
success: function(data2) {
console.log(data2.data.phoneNumber)
if(data2.statusCode == 200) {
self.setData({
phone: data2.data.phoneNumber
})
}
},
fail: function(err) {
console.log(err);
}
})
JS部分的总体代码如下:
getPhoneNumber: function (e) {
if (e.detail.errMsg == "getPhoneNumber:fail user deny") return;
//用户允许授权
console.log("lv", e.detail.iv);
console.log(e.detail.encryptedData);
wx.showLoading()
var self=this
//1. 调用登录接口获取临时登录code
wx.login({
success: res => {
if(res.code){
//2. 访问登录凭证校验接口获取session_key、openid
wx.request({
url: "https://api.weixin.qq.com/sns/jscode2session",
data: {
'appid': "wxcc41e47562b08129",
'secret': "50e4379d67a6860d18157c53dc6ac3c2",
'js_code': res.code,
'grant_type': "authorization_code"
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
}, // 设置请求的 header
success: function (data) {
console.log("data", data)
if(data.statusCode==200){
//3. 解密
wx.request({
url: 'http://qdy8.gotoip4.com/demo/demo.php',
data: {
'encryptedData': e.detail.encryptedData,
'iv': e.detail.iv,
'session_key': data.data.session_key
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
}, // 设置请求的 header
success: function (data2) {
wx.hideLoading()
console.log(data2.data.phoneNumber)
if (data2.statusCode == 200 && data2.data.phoneNumber) {
self.setData({
phone: data2.data.phoneNumber
})
}
},
fail: function (err) {
console.log(err);
}
})
}
},
fail: function (err) {
console.log(err);
}
})
}
}
})
}
二.后端接口:
微信官方提供多种编程语言的示例代码(示例代码)。每种语言类型的接口名称相同,调用方法可以参考示例
如果你只是学习和研究,你可以买一个经济的虚拟主机,每年只需几十美元。然而,这个虚拟主机的大部分是PHP,所以这里我们以PHP为例来转换和接收前端请求
下载官方演示后,结构如下:
Transform demo.php:
将PHP的三个演示文件上传到虚拟主机:
然后您可以直接访问演示。PHP文件作为接口
三.易发生异常:
1.访问微信登录凭证验证界面获取会话密钥,如果报告以下错误,需要清除所有缓存并重新编译(更改appid后应该是开发工具的坑,如果不清除所有缓存会发生此错误):
无效代码,提示:[请求id:CPAsWa0325ha57]
2.decryption接口返回-41003,然后检查接口参数:
这篇关于微信applet开发的文章中的文章就是为了获取用户的手机号码(PHP接口解密)。有关获取用户移动电话号码的更多相关小程序,请搜索上一个脚本主页的文章或继续浏览下面的相关文章。我希望你将来会更多地支持ScriptHome 查看全部
网页手机号抓取程序(
微信小程序开发之获取用户手机号码,文中示例代码介绍)
微信小程序开发,获取用户手机号(PHP接口解密)
更新时间:2020年5月17日16:33:10作者:逍遥云天
本文文章主要介绍微信applet的开发,获取用户手机号。通过实例代码对其进行了详细的介绍,对大家的学习或工作有一定的参考价值。有需要的朋友,让我们和小编一起学习
稍后制作微信小程序,获取用户微信绑定的手机号。小程序开发文档中提供的获取移动电话号码的接口(getphonenumber())返回密文,需要在服务器上解密。然而,该官员提供的开发文件与以往一样混乱。如果不全面了解applet开发文档,理解解密过程仍然有点困难。这里,小程序从请求用户授权获取移动电话号码到获取移动电话号码的明文的整个过程被链接以便于快速理解,如下所示:
一.前端相关操作:
1.请求用户授权获取手机号码:
由于用户需要主动触发启动接口获取手机号,所以API没有调用此功能,需要点击组件触发,如下图:
wxml:
获取手机号码
js:
Page({
getPhoneNumber: function(e) {
if(e.detail.errMsg == "getPhoneNumber:fail user deny") return; //用户允许授权
console.log("lv", e.detail.iv); //包括敏感数据在内的完整用户信息的加密数据,需要解密
console.log(e.detail.encryptedData); //加密算法的初始向量,解密需要用到
......
}
})
2.access小程序登录界面:
小程序调用Wx。Login()获取临时登录证书代码并将其发送到开发人员服务器
Page({
getPhoneNumber: function(e) {
console.log(e.detail.errMsg)
console.log(e.detail.iv) //包括敏感数据在内的完整用户信息的加密数据,需要解密
console.log(e.detail.encryptedData) //加密算法的初始向量,解密需要用到
wx.login({
success: res => {
if(res.code){
console.log(res.code)
}
}
})
}
})
3.访问腾讯服务器登录证书验证界面:
注意:官方建议将其放在服务器端。这里,为了方便起见,将其放在前端请求上
请注意以下参数:
阿皮德
小程序唯一ID
秘密
applet的应用程序秘密
js_uu代码
登录时获取的代码
格兰特型
填写授权代码
//2. 访问登录凭证校验接口获取session_key
wx.request({
url: "https://api.weixin.qq.com/sns/jscode2session",
data: {
'appid': "xxxxxxxx",
'secret': "xxxxxxxx",
'js_code': res.code,
'grant_type': "authorization_code"
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
}, // 设置请求的 header
success: function(data) {
console.log("data", data.data.session_key)
},
fail: function(err) {
console.log(err);
}
})
4.在您自己的服务器上解密
注:解密接口可以使用腾讯官方演示进行修改。具体的转换将在后面描述
//3. 解密
wx.request({
url: 'http://xxxxx.com/demo/demo.php',//腾讯官方demo改造的接口页面
data: {
'encryptedData': encodeURIComponent(e.detail.encryptedData),//需要进行编码
'iv': e.detail.iv,
'session_key': data.data.session_key
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
}, // 设置请求的 header
success: function(data2) {
console.log(data2.data.phoneNumber)
if(data2.statusCode == 200) {
self.setData({
phone: data2.data.phoneNumber
})
}
},
fail: function(err) {
console.log(err);
}
})
JS部分的总体代码如下:
getPhoneNumber: function (e) {
if (e.detail.errMsg == "getPhoneNumber:fail user deny") return;
//用户允许授权
console.log("lv", e.detail.iv);
console.log(e.detail.encryptedData);
wx.showLoading()
var self=this
//1. 调用登录接口获取临时登录code
wx.login({
success: res => {
if(res.code){
//2. 访问登录凭证校验接口获取session_key、openid
wx.request({
url: "https://api.weixin.qq.com/sns/jscode2session",
data: {
'appid': "wxcc41e47562b08129",
'secret': "50e4379d67a6860d18157c53dc6ac3c2",
'js_code': res.code,
'grant_type': "authorization_code"
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
}, // 设置请求的 header
success: function (data) {
console.log("data", data)
if(data.statusCode==200){
//3. 解密
wx.request({
url: 'http://qdy8.gotoip4.com/demo/demo.php',
data: {
'encryptedData': e.detail.encryptedData,
'iv': e.detail.iv,
'session_key': data.data.session_key
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
}, // 设置请求的 header
success: function (data2) {
wx.hideLoading()
console.log(data2.data.phoneNumber)
if (data2.statusCode == 200 && data2.data.phoneNumber) {
self.setData({
phone: data2.data.phoneNumber
})
}
},
fail: function (err) {
console.log(err);
}
})
}
},
fail: function (err) {
console.log(err);
}
})
}
}
})
}
二.后端接口:
微信官方提供多种编程语言的示例代码(示例代码)。每种语言类型的接口名称相同,调用方法可以参考示例
如果你只是学习和研究,你可以买一个经济的虚拟主机,每年只需几十美元。然而,这个虚拟主机的大部分是PHP,所以这里我们以PHP为例来转换和接收前端请求
下载官方演示后,结构如下:

Transform demo.php:
将PHP的三个演示文件上传到虚拟主机:

然后您可以直接访问演示。PHP文件作为接口
三.易发生异常:
1.访问微信登录凭证验证界面获取会话密钥,如果报告以下错误,需要清除所有缓存并重新编译(更改appid后应该是开发工具的坑,如果不清除所有缓存会发生此错误):
无效代码,提示:[请求id:CPAsWa0325ha57]
2.decryption接口返回-41003,然后检查接口参数:

这篇关于微信applet开发的文章中的文章就是为了获取用户的手机号码(PHP接口解密)。有关获取用户移动电话号码的更多相关小程序,请搜索上一个脚本主页的文章或继续浏览下面的相关文章。我希望你将来会更多地支持ScriptHome
网页手机号抓取程序(网站访客手机号码获取,比方说你正在浏览今日头条,)
网站优化 • 优采云 发表了文章 • 0 个评论 • 555 次浏览 • 2021-09-16 11:26
客户提供:app name或app download link技术支持:精准的客户捕获系统,在三大运营商集团数据中心的大力支持下,采集线上线下全球用户数据,所有客户源数据均由运营商正式提供并以实名识别
自动发送电子邮件:网站,网页和应用程序手机号码提取。获得访客的QQ后,您可以自动向访客发送预编辑的QQ
那么网站我应该怎么做才能接到访客电话呢?那么如何抓住它呢?首先,无论是公交服务器还是线路,都由网络运营商控制
许多人想知道网站如何在应用程序中捕获和实现手机号码数据。我将在这里讨论一、数据的来源现在是数据
在过去,由于Android手机应用程序将强制获得“手机”许可,可以获得手机号码和IMEI代码,因此它改变了iPhone。iPhone应用程序无权从系统和软件级别获取手机号码。然而
下载应用程序后,使用手机号码注册并登录。登录后,单击右上角的图标添加要定位的手机号码。然后在下面的菜单中点击位置,实现号码定位。定位成功后,将显示此界面,以查看位置号的当前位置。给你
采集完成后,单击停止搜索,然后保存所需结果。有两种保存方法,一种是只保存手机号码,另一种是保存所有信息
网站visitor的手机号码获取,例如,如果您正在浏览今天的头条新闻,我们可以通过浏览今天的头条新闻获取您的手机号码,然后您可以向手机号码发送短信。获取网站访客手机号的价格 查看全部
网页手机号抓取程序(网站访客手机号码获取,比方说你正在浏览今日头条,)
客户提供:app name或app download link技术支持:精准的客户捕获系统,在三大运营商集团数据中心的大力支持下,采集线上线下全球用户数据,所有客户源数据均由运营商正式提供并以实名识别
自动发送电子邮件:网站,网页和应用程序手机号码提取。获得访客的QQ后,您可以自动向访客发送预编辑的QQ
那么网站我应该怎么做才能接到访客电话呢?那么如何抓住它呢?首先,无论是公交服务器还是线路,都由网络运营商控制
许多人想知道网站如何在应用程序中捕获和实现手机号码数据。我将在这里讨论一、数据的来源现在是数据
在过去,由于Android手机应用程序将强制获得“手机”许可,可以获得手机号码和IMEI代码,因此它改变了iPhone。iPhone应用程序无权从系统和软件级别获取手机号码。然而

下载应用程序后,使用手机号码注册并登录。登录后,单击右上角的图标添加要定位的手机号码。然后在下面的菜单中点击位置,实现号码定位。定位成功后,将显示此界面,以查看位置号的当前位置。给你
采集完成后,单击停止搜索,然后保存所需结果。有两种保存方法,一种是只保存手机号码,另一种是保存所有信息

网站visitor的手机号码获取,例如,如果您正在浏览今天的头条新闻,我们可以通过浏览今天的头条新闻获取您的手机号码,然后您可以向手机号码发送短信。获取网站访客手机号的价格
网页手机号抓取程序(网页手机号抓取程序!小白都能看懂的抓手机方法!)
网站优化 • 优采云 发表了文章 • 0 个评论 • 319 次浏览 • 2021-09-23 22:03
网页手机号抓取程序!小白都能看懂的抓手机号方法!两个流程的手机号库存脚本!一键抓手机号秘籍等着大家!感谢大家的支持,这个网页手机号抓取程序已经上架开源网,
楼上的有一个抓取10000次的脚本或者,先抓取这个网页,获取并记录手机号码再注册了,或者先网页注册,再抓取手机号码,还可以抓取验证码,app,小程序等,想得到手机号码只需要注册一个,一个大户拿到的都是经过两次。一次没有拿到可以考虑的方法就是,就算明知道拿不到,注册一个拿过来对应的信息再反馈过去,刷新就能获取到。或者找下载一个脚本的,但是是要网页可以抓取,自定义可以设置,我们想好的基本上每种类型的都可以。
你就说,让我一次性发10000个人就可以拿到你的手机号码,你看能不能成。
手机号验证的方法太多了,我一个一个试能试死的,你去网上找一篇要验证手机号的攻略全部试一遍试死你也就是试10秒。自己想要一个好点的话验证一下就太慢了,所以我这里告诉你如何通过爬虫接口爬取,然后接口提供验证方法,你照着做即可!第一步:当然就是发起请求,发送手机号验证请求。然后当返回数据给到我们时,通过http()方法给你做手机号验证,返回的响应就是你的手机号码,前提是请求的headers必须是以下的:'user-agent':'mozilla/5.0(windowsnt6.1;wow64)applewebkit/537.36(khtml,likegecko)chrome/56.0.3325.116safari/537.36'你也可以参照我写的这篇文章,一劳永逸。
听说关注我可以让你赚钱,那么我就关注你吧!/post_finance_cmder/web/post_finance_plus-multi/第二步:然后返回数据就是你要用到的信息,那么我就把它发给你。可以发送到/,或者/:,也可以发送到/。mozilla/5.0(windowsnt6.1;wow64)applewebkit/537.36(khtml,likegecko)chrome/56.0.3325.116safari/537.36当然请求别忘了带上/request:/wait/login/request_method=get/outlook//username=..@qq.*.qq.***第三步,返回的数据就是wx的数据,我们把图上的我们自己编写的程序嵌入其中。
wx,/***username=***@newsession()redirectingusername...*/wx.requests(formdata='map-info',username=username).send(newgetaddressforurl(content),//这个参数分别。 查看全部
网页手机号抓取程序(网页手机号抓取程序!小白都能看懂的抓手机方法!)
网页手机号抓取程序!小白都能看懂的抓手机号方法!两个流程的手机号库存脚本!一键抓手机号秘籍等着大家!感谢大家的支持,这个网页手机号抓取程序已经上架开源网,
楼上的有一个抓取10000次的脚本或者,先抓取这个网页,获取并记录手机号码再注册了,或者先网页注册,再抓取手机号码,还可以抓取验证码,app,小程序等,想得到手机号码只需要注册一个,一个大户拿到的都是经过两次。一次没有拿到可以考虑的方法就是,就算明知道拿不到,注册一个拿过来对应的信息再反馈过去,刷新就能获取到。或者找下载一个脚本的,但是是要网页可以抓取,自定义可以设置,我们想好的基本上每种类型的都可以。
你就说,让我一次性发10000个人就可以拿到你的手机号码,你看能不能成。
手机号验证的方法太多了,我一个一个试能试死的,你去网上找一篇要验证手机号的攻略全部试一遍试死你也就是试10秒。自己想要一个好点的话验证一下就太慢了,所以我这里告诉你如何通过爬虫接口爬取,然后接口提供验证方法,你照着做即可!第一步:当然就是发起请求,发送手机号验证请求。然后当返回数据给到我们时,通过http()方法给你做手机号验证,返回的响应就是你的手机号码,前提是请求的headers必须是以下的:'user-agent':'mozilla/5.0(windowsnt6.1;wow64)applewebkit/537.36(khtml,likegecko)chrome/56.0.3325.116safari/537.36'你也可以参照我写的这篇文章,一劳永逸。
听说关注我可以让你赚钱,那么我就关注你吧!/post_finance_cmder/web/post_finance_plus-multi/第二步:然后返回数据就是你要用到的信息,那么我就把它发给你。可以发送到/,或者/:,也可以发送到/。mozilla/5.0(windowsnt6.1;wow64)applewebkit/537.36(khtml,likegecko)chrome/56.0.3325.116safari/537.36当然请求别忘了带上/request:/wait/login/request_method=get/outlook//username=..@qq.*.qq.***第三步,返回的数据就是wx的数据,我们把图上的我们自己编写的程序嵌入其中。
wx,/***username=***@newsession()redirectingusername...*/wx.requests(formdata='map-info',username=username).send(newgetaddressforurl(content),//这个参数分别。
网页手机号抓取程序(亿速云网站:请求后台解密获取用户手机号直接上干货)
网站优化 • 优采云 发表了文章 • 0 个评论 • 126 次浏览 • 2021-09-23 17:01
这个内容主要是解释“如何授权手机号码-goneNumber”,“感兴趣的朋友可能会看看。本文中介绍的方法简单又快速实用。让我们拿一个小系列带你”如何授权手机号码-GetPhoneNumber“”微信小程序用户“!”
前言
applet有一个api,让用户非常方便,是让用户的手机号码通过getphonumber绑定到微信。要注意的一件事要注意,现在微信并注意用户体验,需要一些方法需要主动触发呼叫,如GetPhonenumber。
实现:
1、通过wx.login获取代码,收益OpenID和Sessionkey
2、 get encrypteddata,iv
通过getphonenumber
3、 pass参数[encypteddata],[iv],[sessionkey]请求背景解密用户手机号
直接交付:
1、用词点单击以获取用户手机号码按钮
获取用户手机号
2、弹出授权图片:
3、获取手机号
通过解密
直接代码:
wxlogin: function() { //获取用户的openID和sessionKey
var that = this;
wx.login({
//获取code 使用wx.login得到的登陆凭证,用于换取openid
success: (res) = >{
wx.request({
method: "GET",
url: 'https://xxxwx/wxlogin.do',
data: {
code: res.code,
appId: "appIdSbcx",
appKey: "appKeySbcx"
},
header: {
'content-type': 'application/json' // 默认值
},
success: (res) = >{
console.log(res);
that.setData({
sessionKey: res.data.session_key
});
}
});
}
});
}
getPhoneNumber: function(e) { //点击获取手机号码按钮
var that = this;
wx.checkSession({
success: function() {
console.log(e.detail.errMsg)
console.log(e.detail.iv)
console.log(e.detail.encryptedData)
var ency = e.detail.encryptedData;
var iv = e.detail.iv;
var sessionk = that.data.sessionKey;
if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
that.setData({
modalstatus: true
});
} else { //同意授权
wx.request({
method: "GET",
url: 'https://xxx/wx/deciphering.do',
data: {
encrypdata: ency,
ivdata: iv,
sessionkey: sessionk
},
header: {
'content-type': 'application/json' // 默认值
},
success: (res) = >{
console.log("解密成功~~~~~~~将解密的号码保存到本地~~~~~~~~");
console.log(res);
var phone = res.data.phoneNumber;
console.log(phone);
},
fail: function(res) {
console.log("解密失败~~~~~~~~~~~~~");
console.log(res);
}
});
}
},
fail: function() {
console.log("session_key 已经失效,需要重新执行登录流程");
that.wxlogin(); //重新登录
}
});
}
背景代码:
/**
* 解密并且获取用户手机号码
* @param encrypdata
* @param ivdata
* @param sessionkey
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "deciphering", method = RequestMethod.GET)
public @ResponseBody String deciphering(String encrypdata,
String ivdata, String sessionkey,
HttpServletRequest request) {
byte[] encrypData = Base64.decode(encrypdata);
byte[] ivData = Base64.decode(ivdata);
byte[] sessionKey = Base64.decode(sessionkey);
String str="";
try {
str = decrypt(sessionKey,ivData,encrypData);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(str);
return str;
}
public static String decrypt(byte[] key, byte[] iv, byte[] encData) throws Exception {
AlgorithmParameterSpec ivSpec = new IvParameterSpec(iv);
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
SecretKeySpec keySpec = new SecretKeySpec(key, "AES");
cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
//解析解密后的字符串
return new String(cipher.doFinal(encData),"UTF-8");
}
摘要
在这里,我相信每个人都有更深入的了解“如何授权手机号码-GethoneNumber”“微信小程序”,“我必须实际上有一件事!这是亿速云网站,更多相关内容可以进入相关渠道查询,注意我们,继续学习! 查看全部
网页手机号抓取程序(亿速云网站:请求后台解密获取用户手机号直接上干货)
这个内容主要是解释“如何授权手机号码-goneNumber”,“感兴趣的朋友可能会看看。本文中介绍的方法简单又快速实用。让我们拿一个小系列带你”如何授权手机号码-GetPhoneNumber“”微信小程序用户“!”
前言
applet有一个api,让用户非常方便,是让用户的手机号码通过getphonumber绑定到微信。要注意的一件事要注意,现在微信并注意用户体验,需要一些方法需要主动触发呼叫,如GetPhonenumber。
实现:
1、通过wx.login获取代码,收益OpenID和Sessionkey
2、 get encrypteddata,iv
通过getphonenumber
3、 pass参数[encypteddata],[iv],[sessionkey]请求背景解密用户手机号
直接交付:
1、用词点单击以获取用户手机号码按钮
获取用户手机号
2、弹出授权图片:

3、获取手机号
通过解密

直接代码:
wxlogin: function() { //获取用户的openID和sessionKey
var that = this;
wx.login({
//获取code 使用wx.login得到的登陆凭证,用于换取openid
success: (res) = >{
wx.request({
method: "GET",
url: 'https://xxxwx/wxlogin.do',
data: {
code: res.code,
appId: "appIdSbcx",
appKey: "appKeySbcx"
},
header: {
'content-type': 'application/json' // 默认值
},
success: (res) = >{
console.log(res);
that.setData({
sessionKey: res.data.session_key
});
}
});
}
});
}
getPhoneNumber: function(e) { //点击获取手机号码按钮
var that = this;
wx.checkSession({
success: function() {
console.log(e.detail.errMsg)
console.log(e.detail.iv)
console.log(e.detail.encryptedData)
var ency = e.detail.encryptedData;
var iv = e.detail.iv;
var sessionk = that.data.sessionKey;
if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
that.setData({
modalstatus: true
});
} else { //同意授权
wx.request({
method: "GET",
url: 'https://xxx/wx/deciphering.do',
data: {
encrypdata: ency,
ivdata: iv,
sessionkey: sessionk
},
header: {
'content-type': 'application/json' // 默认值
},
success: (res) = >{
console.log("解密成功~~~~~~~将解密的号码保存到本地~~~~~~~~");
console.log(res);
var phone = res.data.phoneNumber;
console.log(phone);
},
fail: function(res) {
console.log("解密失败~~~~~~~~~~~~~");
console.log(res);
}
});
}
},
fail: function() {
console.log("session_key 已经失效,需要重新执行登录流程");
that.wxlogin(); //重新登录
}
});
}
背景代码:
/**
* 解密并且获取用户手机号码
* @param encrypdata
* @param ivdata
* @param sessionkey
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "deciphering", method = RequestMethod.GET)
public @ResponseBody String deciphering(String encrypdata,
String ivdata, String sessionkey,
HttpServletRequest request) {
byte[] encrypData = Base64.decode(encrypdata);
byte[] ivData = Base64.decode(ivdata);
byte[] sessionKey = Base64.decode(sessionkey);
String str="";
try {
str = decrypt(sessionKey,ivData,encrypData);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(str);
return str;
}
public static String decrypt(byte[] key, byte[] iv, byte[] encData) throws Exception {
AlgorithmParameterSpec ivSpec = new IvParameterSpec(iv);
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
SecretKeySpec keySpec = new SecretKeySpec(key, "AES");
cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
//解析解密后的字符串
return new String(cipher.doFinal(encData),"UTF-8");
}
摘要
在这里,我相信每个人都有更深入的了解“如何授权手机号码-GethoneNumber”“微信小程序”,“我必须实际上有一件事!这是亿速云网站,更多相关内容可以进入相关渠道查询,注意我们,继续学习!
网页手机号抓取程序(爬虫访问小程序内页面时,会携带特定的user-agent)
网站优化 • 优采云 发表了文章 • 0 个评论 • 79 次浏览 • 2021-09-22 14:00
在2019年上半年,微信根据小程序页发行搜索。为了更好地发现和理解小程序的页面,结合我们在过去的一段时间内遇到的各种情况,我们强烈推荐开发人员。一些宝贵的时间仔细阅读了本文:)
当爬网程序访问小程序中的页面时,它将携带特定的用户 - 代理“MPCrawler”和场景:1129
1.小程序页(网址)直接打开。
小程序页面中的跳跃URL是我们爬网的发现页面的重要来源,搜索引擎调用的结果页面(URL)必须能够直接打开,而不是依赖于上下文状态。特殊:推荐页面所需的参数收录在URL
中
2. page跳转优先级导航器组件。
applet提供两种类型的页面:
a.navigator组件
b。路由API,包括NavigateTo / redirectto / switchtab / navigateback / stranslaunch
建议使用导航器组件。如果您必须使用API,则可以在访问爬网程序时屏蔽时间锁定或可变锁以单击设置。
3.清除和简单的页面参数。
querystring,清除,简洁,参数,对爬行和后续分析有很大的帮助,但JSON数据实现了差。
4.用户请求用户授权,登录和绑定移动电话号码等。
建议要求用户授权(例如读文章可以是匿名的,并且评论需要命名)。
5.我们没有收录 web-view任何东西。
我们不能为时间做到这一点。在很长一段时间里,我们可能不这样做。
6.使用sitemap配置爬虫的指导,同时屏蔽路径而无需搜索值。
7.设置一个清晰的标题和页面缩略图。
页面标题和缩略图在我们的理解页面中具有重要作用,并增加曝光转换。
使用wx.setNavigationBartitle或自定义前进内容OnShareAppMessage,页面的标题和缩略图设置还提供给视频,音频组件重新介绍了海报/后爬行物。
8.使用页面路径推送功能
可以丰富微信可以收录,然后改善小程序内容的曝光机会。请参阅: 查看全部
网页手机号抓取程序(爬虫访问小程序内页面时,会携带特定的user-agent)
在2019年上半年,微信根据小程序页发行搜索。为了更好地发现和理解小程序的页面,结合我们在过去的一段时间内遇到的各种情况,我们强烈推荐开发人员。一些宝贵的时间仔细阅读了本文:)
当爬网程序访问小程序中的页面时,它将携带特定的用户 - 代理“MPCrawler”和场景:1129
1.小程序页(网址)直接打开。
小程序页面中的跳跃URL是我们爬网的发现页面的重要来源,搜索引擎调用的结果页面(URL)必须能够直接打开,而不是依赖于上下文状态。特殊:推荐页面所需的参数收录在URL
中
2. page跳转优先级导航器组件。
applet提供两种类型的页面:
a.navigator组件
b。路由API,包括NavigateTo / redirectto / switchtab / navigateback / stranslaunch
建议使用导航器组件。如果您必须使用API,则可以在访问爬网程序时屏蔽时间锁定或可变锁以单击设置。
3.清除和简单的页面参数。
querystring,清除,简洁,参数,对爬行和后续分析有很大的帮助,但JSON数据实现了差。
4.用户请求用户授权,登录和绑定移动电话号码等。
建议要求用户授权(例如读文章可以是匿名的,并且评论需要命名)。
5.我们没有收录 web-view任何东西。
我们不能为时间做到这一点。在很长一段时间里,我们可能不这样做。
6.使用sitemap配置爬虫的指导,同时屏蔽路径而无需搜索值。
7.设置一个清晰的标题和页面缩略图。
页面标题和缩略图在我们的理解页面中具有重要作用,并增加曝光转换。
使用wx.setNavigationBartitle或自定义前进内容OnShareAppMessage,页面的标题和缩略图设置还提供给视频,音频组件重新介绍了海报/后爬行物。
8.使用页面路径推送功能
可以丰富微信可以收录,然后改善小程序内容的曝光机会。请参阅:
网页手机号抓取程序(网页手机号抓取程序、导航电脑端互动互动来喽)
网站优化 • 优采云 发表了文章 • 0 个评论 • 160 次浏览 • 2021-09-20 10:03
网页手机号抓取程序、导航电脑端互动抓取程序、地图api接口互动来喽xx爬虫论坛这里有蛮多网站可以下载的。不过有不少网站使用了特殊情况需要仔细辨别,即使你知道这些也不一定能得到你想要的。
如果airdrop之类的会丢,可以尝试用pc上的抓包软件,
airdrop是本地的,所以其实原理就是链接的服务器先检测airdrop链接的端是否同一个,如果同一个。那么可以获取到airdrop网址。然后用手机或电脑自带浏览器,查看对应网站的url。手机和电脑就能够互相直接链接到对方了。其实airdrop只要你连着同一个wifi,就能实现互相更新数据。
去你常去的网站下个同步助手
最简单的就是去一些服务器下载,然后用抓包工具抓取,
以下代码仅用于pc操作,手机操作不适用。
1、打开百度,搜索“无线网抓包”之类的关键词。点击进入,然后在右侧网站栏点击“百度卫士”,查看这个网站的来源。
2、然后打开手机浏览器,输入百度卫士,在界面中点击“无线连接”。浏览器搜索框中点击“无线连接”,找到“无线网抓包”这个网址,然后点击进入。
3、浏览器中进入“无线网抓包”,然后你需要访问下面这个网址:。手机网页中也是一样的。
4、最后,点击“去开始”,手机就会自动下载百度卫士。
5、手机下载好百度卫士,然后回到电脑上面,输入网址:,或者在手机上百度中也可以抓包。推荐,这样抓取代码的难度小一些。基本没什么安全隐患。 查看全部
网页手机号抓取程序(网页手机号抓取程序、导航电脑端互动互动来喽)
网页手机号抓取程序、导航电脑端互动抓取程序、地图api接口互动来喽xx爬虫论坛这里有蛮多网站可以下载的。不过有不少网站使用了特殊情况需要仔细辨别,即使你知道这些也不一定能得到你想要的。
如果airdrop之类的会丢,可以尝试用pc上的抓包软件,
airdrop是本地的,所以其实原理就是链接的服务器先检测airdrop链接的端是否同一个,如果同一个。那么可以获取到airdrop网址。然后用手机或电脑自带浏览器,查看对应网站的url。手机和电脑就能够互相直接链接到对方了。其实airdrop只要你连着同一个wifi,就能实现互相更新数据。
去你常去的网站下个同步助手
最简单的就是去一些服务器下载,然后用抓包工具抓取,
以下代码仅用于pc操作,手机操作不适用。
1、打开百度,搜索“无线网抓包”之类的关键词。点击进入,然后在右侧网站栏点击“百度卫士”,查看这个网站的来源。
2、然后打开手机浏览器,输入百度卫士,在界面中点击“无线连接”。浏览器搜索框中点击“无线连接”,找到“无线网抓包”这个网址,然后点击进入。
3、浏览器中进入“无线网抓包”,然后你需要访问下面这个网址:。手机网页中也是一样的。
4、最后,点击“去开始”,手机就会自动下载百度卫士。
5、手机下载好百度卫士,然后回到电脑上面,输入网址:,或者在手机上百度中也可以抓包。推荐,这样抓取代码的难度小一些。基本没什么安全隐患。
网页手机号抓取程序(手机应用抓取通讯录信息用户普遍存疑虑针对目前行为表示疑虑)
网站优化 • 优采云 发表了文章 • 0 个评论 • 79 次浏览 • 2021-09-17 23:03
飞翔网(魏德玲/文)目前,很多移动社交应用都添加了捕捉用户关系的功能。当用户需要寻找社会关系时,这些应用程序将读取用户通讯簿中的信息并自动匹配。其中包括手机制造商HTC的htcsense、UCWEB中的UC paradise,以及最近流行的KIK应用程序,如kikmessanger、meter chat、微信等。大多数用户对这种捕获通讯簿的行为表示怀疑
移动应用程序获取通讯簿信息
目前,业内有观点认为社交应用的核心在于“用户关系”,而用户手机通讯录中的社交关系网络价值巨大,长期以来没有被电信运营商和互联网巨头有效利用。据报道,一些移动应用程序,如即时消息、社交网络和联系人备份,现在都参与了在用户的手机通讯簿中捕捉这种关系
记者发现,当用户使用htcsense添加好友时,系统会自动在用户的联系人中搜索使用htcsense的人,用户可以直接添加为好友,而无需单独添加联系人信息。之后,用户可以在不同的移动应用程序上查看朋友的评论
此外,htcsense可以通过自动检索用户Facebook、twitter、电子邮件地址和其他信息来集成同一联系人的多个信息。用户无需手动逐个录入即可完成联系人信息的补充和排序
据了解,UC paradise功能已绑定在国内移动浏览器UCWEB中,用户可在该浏览器中选择从通讯录中寻找朋友。在试用过程中,记者可以直接匹配电话簿中的四位实名好友,并直接添加好友
KIK在国内外的应用也在增加。腾讯最近加入了这个阵营,推出了下一个产品微信。KIK应用程序主要基于用户手机中的联系人目录捕获关系。只要将客户端加载到联系人中,用户就可以开始类似于SMS的聊天,而无需添加它。以kikmessanger为例,它涉及诸如读取用户联系信息、电话状态和身份等权限
用户普遍持怀疑态度
针对目前手机应用开始普遍捕捉用户电话簿信息的现状,记者发现,多数网民通过询问部分用户对此表示担忧
“这是一个个人隐私问题。毕竟,你的朋友告诉你这个号码是出于对你的信任,所以你有义务为你的朋友保护这个小小的隐私,”一位名叫kelxins的网民说。其他网民也表示,虽然目前抓取通讯录没有受到影响,但他们感到不安全。其他人认为有必要划分应用程序的类型。例如,输入法之类的应用程序可以自己输入
去年10月,由于扫描用户通讯簿的问题,UC浏览器中的UC paradise受到用户和媒体的质疑。当时,一些用户表示,他们的隐私提示不够清晰,在使用前无法理解所涉及的权限。坎特伯雷大学表示,坎特伯雷大学天堂是一个基于真实用户的大型社交平台,还可以帮助用户通过阅读自己的位置找到附近的朋友 查看全部
网页手机号抓取程序(手机应用抓取通讯录信息用户普遍存疑虑针对目前行为表示疑虑)
飞翔网(魏德玲/文)目前,很多移动社交应用都添加了捕捉用户关系的功能。当用户需要寻找社会关系时,这些应用程序将读取用户通讯簿中的信息并自动匹配。其中包括手机制造商HTC的htcsense、UCWEB中的UC paradise,以及最近流行的KIK应用程序,如kikmessanger、meter chat、微信等。大多数用户对这种捕获通讯簿的行为表示怀疑
移动应用程序获取通讯簿信息
目前,业内有观点认为社交应用的核心在于“用户关系”,而用户手机通讯录中的社交关系网络价值巨大,长期以来没有被电信运营商和互联网巨头有效利用。据报道,一些移动应用程序,如即时消息、社交网络和联系人备份,现在都参与了在用户的手机通讯簿中捕捉这种关系
记者发现,当用户使用htcsense添加好友时,系统会自动在用户的联系人中搜索使用htcsense的人,用户可以直接添加为好友,而无需单独添加联系人信息。之后,用户可以在不同的移动应用程序上查看朋友的评论
此外,htcsense可以通过自动检索用户Facebook、twitter、电子邮件地址和其他信息来集成同一联系人的多个信息。用户无需手动逐个录入即可完成联系人信息的补充和排序
据了解,UC paradise功能已绑定在国内移动浏览器UCWEB中,用户可在该浏览器中选择从通讯录中寻找朋友。在试用过程中,记者可以直接匹配电话簿中的四位实名好友,并直接添加好友
KIK在国内外的应用也在增加。腾讯最近加入了这个阵营,推出了下一个产品微信。KIK应用程序主要基于用户手机中的联系人目录捕获关系。只要将客户端加载到联系人中,用户就可以开始类似于SMS的聊天,而无需添加它。以kikmessanger为例,它涉及诸如读取用户联系信息、电话状态和身份等权限
用户普遍持怀疑态度
针对目前手机应用开始普遍捕捉用户电话簿信息的现状,记者发现,多数网民通过询问部分用户对此表示担忧
“这是一个个人隐私问题。毕竟,你的朋友告诉你这个号码是出于对你的信任,所以你有义务为你的朋友保护这个小小的隐私,”一位名叫kelxins的网民说。其他网民也表示,虽然目前抓取通讯录没有受到影响,但他们感到不安全。其他人认为有必要划分应用程序的类型。例如,输入法之类的应用程序可以自己输入
去年10月,由于扫描用户通讯簿的问题,UC浏览器中的UC paradise受到用户和媒体的质疑。当时,一些用户表示,他们的隐私提示不够清晰,在使用前无法理解所涉及的权限。坎特伯雷大学表示,坎特伯雷大学天堂是一个基于真实用户的大型社交平台,还可以帮助用户通过阅读自己的位置找到附近的朋友
网页手机号抓取程序(爬取公司内部邮箱的通讯录,获取所有用户的手机号码!)
网站优化 • 优采云 发表了文章 • 0 个评论 • 144 次浏览 • 2021-09-17 07:04
前段时间,我收到一位业务人员的爬虫请求,要求我对公司内部邮箱的地址簿进行爬虫,获取所有用户的手机号码,并建立相应的业务推广白名单
1、需求解释
首先,我们公司的邮箱是outlook的邮箱。只有登录邮箱才能看到整个公司的通讯录,因为员工数量很多(将近一百万名员工)。首先,让我们看一下具体的电子邮件联系人列表:
子公司的名称列在目录中。点击子公司后,会列出子公司的人员列表,点击人员时会显示具体的手机号及相关信息
2、建造爬行动物前的准备
首先,这个需求需要不断的点击相应的项目来获取相应用户的手机号。但是,此人的页面上有很多人,并且没有相应的分页标志。只有一个滚动条可以上下拉动。有很多内容,至少有上万条,所以你需要不断地点击这个人的信息
我以前想过用普通的爬行工具爬行,但是工作人员没有发现明显的规律性。它们不能通过简单的遍历直接获得相应的数据。另外,数据加载也是通过相应的JavaScript脚本和Ajax来实现的,所以我暂时没有更好的解决方案(PS:天哪,如果你有更好的解决方案,请给我一些建议。)
通过查阅相应的爬虫工具库,我们最终找到了一个用于自动测试的python库(selenium库)。该库的一个优点是,它可以像人类一样连续单击鼠标以获取相应的内容。通过模拟人类相应的操作,我们可以直接获得相应的内容。具体使用请百度(因为模拟浏览器不断点击,所有用户都需要下载相应的浏览器驱动程序)
3、crawler的实现
不用多说,直接上代码是最真实的
# -*- coding: utf-8 -*-
"""
Created on Tue Jan 30 21:18:12 2018
"""
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import TimeoutException
from selenium.common.exceptions import WebDriverException
import time
browser = webdriver.Chrome()
wait = WebDriverWait(browser,20)
def login_outlook():
# 模仿浏览器进行登录操作
#需要爬去邮箱的地址
browser.get('--------------------------')
username = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR,'#username')))
passwd = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR,'#password')))
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'#lgnDiv > div.signInEnter > div > span')))
#邮箱的用户名
username.send_keys('username')
#邮箱登录密码
passwd.send_keys('password')
submit.click()
def main():
# 登录
login_outlook()
time.sleep(5)
# 点击人员选项
submit_renyuan = wait.until(
EC.element_to_be_clickable((By.CSS_SELECTOR,'#_ariaId_19')))
submit_renyuan.click()
# 点击所有用户
submit_allyonghu = wait.until(
EC.element_to_be_clickable((By.XPATH,'//*[@id="_ariaId_452"]/div[1]/div[2]/div/div[2]/span')))
submit_allyonghu.click()
#遍历所有的用户
result =[]
# select_header ='''body > div._n_X4 > div > div._n_p.csimg.image-headerbgmain-png > div:nth-child(3) > div:nth-child(2) > div._ph_S > div:nth-child(3) > div:nth-child(1) > div._ph_j1 > div:nth-child(1) > div > div > div._ph_V1.customScrollBar.scrollContainer > div > div > div:nth-child('''
# select_tail =''') > span > div > span._pe_b._pe_s > span'''
Xpath_head = '''/html/body/div[2]/div/div[3]/div[3]/div[2]/div[2]/div[3]/div[1]/div[2]/div[1]/div/div/div[1]/div/div/div['''
Xpath_tail = ''']/span/div/span[3]/span'''
wait1 = WebDriverWait(browser,2)
#这里的10000是人为设定的,因为不知道这个页面上面具体有多少用户
for j in range(1,10000):
print(j)
for i in range(1,71):
print(i)
Xpath = Xpath_head + str(i) + Xpath_tail
print(Xpath)
try:
submit_ren = wait1.until(
EC.element_to_be_clickable((By.XPATH,Xpath)))
submit_ren.click()
except(NoSuchElementException,TimeoutException,WebDriverException):
print("连接超时")
continue
time.sleep(0.18)
# result.append(wait.until(
# EC.element_to_be_clickable((By.CSS_SELECTOR,'body > div._n_X4 > div > div._n_p.csimg.image-headerbgmain-png > div:nth-child(3) > div:nth-child(2) > div._ph_S > div:nth-child(3) > div:nth-child(4) > div:nth-child(2) > div > div:nth-child(3) > div._rpc_s > div:nth-child(1) > div > div > div:nth-child(1) > div > div > div'))))
#获取到相应的手机号码文本
rr=browser.find_element_by_xpath("/html/body/div[2]/div/div[3]/div[3]/div[2]/div[2]/div[3]/div[4]/div[2]/div/div[3]/div[4]/div[1]/div/div/div[1]/div/div/div")
saveFile = open('telno.txt','a')
saveFile.write(str(rr.text.replace("\n","|")))
saveFile.write("\n")
saveFile.close()
time.sleep(1)
if __name__ == '__main__':
main()
4、结果分析和改进领域
通过整个爬行过程,发现爬行器存在以下缺点:
(1).虽然可以检索到对应用户的手机号码,但是号码不一定完整,一个人设置10000,这是非常不合理的,因为我们不知道有多少用户,所以我们设置了一个很大的号码,但是这个方法是非常不合适的
(2).在爬行过程中,发现模拟的点击没有一一点击,存在跳跃现象,这也是爬行不完全的原因之一,原因是我们不了解页面加载方式和具体的数据加载方式,从而找到相应的规律(向伟大的上帝寻求指引)
(3)爬网的成功与服务器的响应时间也有关系,造成这种现象的原因有两个:一是用户没有对应的手机号码(这种现象确实存在,但是号码很小)另一方面,服务器的响应时间相对较慢,在服务器返回对应用户的手机号码之前,程序开始点击下一个用户
(4)注意,最好让程序休眠一段时间(即代码中的time.sleep())模拟点击时,一方面是等待服务器的相应响应,另一方面也是模拟人,因为如果点击太快,会被识别为攻击,你的IP地址会被短时间封锁
最后,由于爬虫可以爬行到用户的手机号,有很多问题需要解决,而且最后一个爬虫的手机号不是最完整的,所以爬虫程序还有很大的改进空间。(我以后会继续改进) 查看全部
网页手机号抓取程序(爬取公司内部邮箱的通讯录,获取所有用户的手机号码!)
前段时间,我收到一位业务人员的爬虫请求,要求我对公司内部邮箱的地址簿进行爬虫,获取所有用户的手机号码,并建立相应的业务推广白名单
1、需求解释
首先,我们公司的邮箱是outlook的邮箱。只有登录邮箱才能看到整个公司的通讯录,因为员工数量很多(将近一百万名员工)。首先,让我们看一下具体的电子邮件联系人列表:

子公司的名称列在目录中。点击子公司后,会列出子公司的人员列表,点击人员时会显示具体的手机号及相关信息
2、建造爬行动物前的准备
首先,这个需求需要不断的点击相应的项目来获取相应用户的手机号。但是,此人的页面上有很多人,并且没有相应的分页标志。只有一个滚动条可以上下拉动。有很多内容,至少有上万条,所以你需要不断地点击这个人的信息
我以前想过用普通的爬行工具爬行,但是工作人员没有发现明显的规律性。它们不能通过简单的遍历直接获得相应的数据。另外,数据加载也是通过相应的JavaScript脚本和Ajax来实现的,所以我暂时没有更好的解决方案(PS:天哪,如果你有更好的解决方案,请给我一些建议。)
通过查阅相应的爬虫工具库,我们最终找到了一个用于自动测试的python库(selenium库)。该库的一个优点是,它可以像人类一样连续单击鼠标以获取相应的内容。通过模拟人类相应的操作,我们可以直接获得相应的内容。具体使用请百度(因为模拟浏览器不断点击,所有用户都需要下载相应的浏览器驱动程序)
3、crawler的实现
不用多说,直接上代码是最真实的
# -*- coding: utf-8 -*-
"""
Created on Tue Jan 30 21:18:12 2018
"""
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import TimeoutException
from selenium.common.exceptions import WebDriverException
import time
browser = webdriver.Chrome()
wait = WebDriverWait(browser,20)
def login_outlook():
# 模仿浏览器进行登录操作
#需要爬去邮箱的地址
browser.get('--------------------------')
username = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR,'#username')))
passwd = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR,'#password')))
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'#lgnDiv > div.signInEnter > div > span')))
#邮箱的用户名
username.send_keys('username')
#邮箱登录密码
passwd.send_keys('password')
submit.click()
def main():
# 登录
login_outlook()
time.sleep(5)
# 点击人员选项
submit_renyuan = wait.until(
EC.element_to_be_clickable((By.CSS_SELECTOR,'#_ariaId_19')))
submit_renyuan.click()
# 点击所有用户
submit_allyonghu = wait.until(
EC.element_to_be_clickable((By.XPATH,'//*[@id="_ariaId_452"]/div[1]/div[2]/div/div[2]/span')))
submit_allyonghu.click()
#遍历所有的用户
result =[]
# select_header ='''body > div._n_X4 > div > div._n_p.csimg.image-headerbgmain-png > div:nth-child(3) > div:nth-child(2) > div._ph_S > div:nth-child(3) > div:nth-child(1) > div._ph_j1 > div:nth-child(1) > div > div > div._ph_V1.customScrollBar.scrollContainer > div > div > div:nth-child('''
# select_tail =''') > span > div > span._pe_b._pe_s > span'''
Xpath_head = '''/html/body/div[2]/div/div[3]/div[3]/div[2]/div[2]/div[3]/div[1]/div[2]/div[1]/div/div/div[1]/div/div/div['''
Xpath_tail = ''']/span/div/span[3]/span'''
wait1 = WebDriverWait(browser,2)
#这里的10000是人为设定的,因为不知道这个页面上面具体有多少用户
for j in range(1,10000):
print(j)
for i in range(1,71):
print(i)
Xpath = Xpath_head + str(i) + Xpath_tail
print(Xpath)
try:
submit_ren = wait1.until(
EC.element_to_be_clickable((By.XPATH,Xpath)))
submit_ren.click()
except(NoSuchElementException,TimeoutException,WebDriverException):
print("连接超时")
continue
time.sleep(0.18)
# result.append(wait.until(
# EC.element_to_be_clickable((By.CSS_SELECTOR,'body > div._n_X4 > div > div._n_p.csimg.image-headerbgmain-png > div:nth-child(3) > div:nth-child(2) > div._ph_S > div:nth-child(3) > div:nth-child(4) > div:nth-child(2) > div > div:nth-child(3) > div._rpc_s > div:nth-child(1) > div > div > div:nth-child(1) > div > div > div'))))
#获取到相应的手机号码文本
rr=browser.find_element_by_xpath("/html/body/div[2]/div/div[3]/div[3]/div[2]/div[2]/div[3]/div[4]/div[2]/div/div[3]/div[4]/div[1]/div/div/div[1]/div/div/div")
saveFile = open('telno.txt','a')
saveFile.write(str(rr.text.replace("\n","|")))
saveFile.write("\n")
saveFile.close()
time.sleep(1)
if __name__ == '__main__':
main()
4、结果分析和改进领域
通过整个爬行过程,发现爬行器存在以下缺点:
(1).虽然可以检索到对应用户的手机号码,但是号码不一定完整,一个人设置10000,这是非常不合理的,因为我们不知道有多少用户,所以我们设置了一个很大的号码,但是这个方法是非常不合适的
(2).在爬行过程中,发现模拟的点击没有一一点击,存在跳跃现象,这也是爬行不完全的原因之一,原因是我们不了解页面加载方式和具体的数据加载方式,从而找到相应的规律(向伟大的上帝寻求指引)
(3)爬网的成功与服务器的响应时间也有关系,造成这种现象的原因有两个:一是用户没有对应的手机号码(这种现象确实存在,但是号码很小)另一方面,服务器的响应时间相对较慢,在服务器返回对应用户的手机号码之前,程序开始点击下一个用户
(4)注意,最好让程序休眠一段时间(即代码中的time.sleep())模拟点击时,一方面是等待服务器的相应响应,另一方面也是模拟人,因为如果点击太快,会被识别为攻击,你的IP地址会被短时间封锁
最后,由于爬虫可以爬行到用户的手机号,有很多问题需要解决,而且最后一个爬虫的手机号不是最完整的,所以爬虫程序还有很大的改进空间。(我以后会继续改进)
网页手机号抓取程序( 微信小程序开发之获取用户手机号码,文中示例代码介绍)
网站优化 • 优采云 发表了文章 • 0 个评论 • 194 次浏览 • 2021-09-17 07:01
微信小程序开发之获取用户手机号码,文中示例代码介绍)
微信小程序开发,获取用户手机号(PHP接口解密)
更新时间:2020年5月17日16:33:10作者:逍遥云天
本文文章主要介绍微信applet的开发,获取用户手机号。通过实例代码对其进行了详细的介绍,对大家的学习或工作有一定的参考价值。有需要的朋友,让我们和小编一起学习
稍后制作微信小程序,获取用户微信绑定的手机号。小程序开发文档中提供的获取移动电话号码的接口(getphonenumber())返回密文,需要在服务器上解密。然而,该官员提供的开发文件与以往一样混乱。如果不全面了解applet开发文档,理解解密过程仍然有点困难。这里,小程序从请求用户授权获取移动电话号码到获取移动电话号码的明文的整个过程被链接以便于快速理解,如下所示:
一.前端相关操作:
1.请求用户授权获取手机号码:
由于用户需要主动触发启动接口获取手机号,所以API没有调用此功能,需要点击组件触发,如下图:
wxml:
获取手机号码
js:
Page({
getPhoneNumber: function(e) {
if(e.detail.errMsg == "getPhoneNumber:fail user deny") return; //用户允许授权
console.log("lv", e.detail.iv); //包括敏感数据在内的完整用户信息的加密数据,需要解密
console.log(e.detail.encryptedData); //加密算法的初始向量,解密需要用到
......
}
})
2.access小程序登录界面:
小程序调用Wx。Login()获取临时登录证书代码并将其发送到开发人员服务器
Page({
getPhoneNumber: function(e) {
console.log(e.detail.errMsg)
console.log(e.detail.iv) //包括敏感数据在内的完整用户信息的加密数据,需要解密
console.log(e.detail.encryptedData) //加密算法的初始向量,解密需要用到
wx.login({
success: res => {
if(res.code){
console.log(res.code)
}
}
})
}
})
3.访问腾讯服务器登录证书验证界面:
注意:官方建议将其放在服务器端。这里,为了方便起见,将其放在前端请求上
请注意以下参数:
阿皮德
小程序唯一ID
秘密
applet的应用程序秘密
js_uu代码
登录时获取的代码
格兰特型
填写授权代码
//2. 访问登录凭证校验接口获取session_key
wx.request({
url: "https://api.weixin.qq.com/sns/jscode2session",
data: {
'appid': "xxxxxxxx",
'secret': "xxxxxxxx",
'js_code': res.code,
'grant_type': "authorization_code"
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
}, // 设置请求的 header
success: function(data) {
console.log("data", data.data.session_key)
},
fail: function(err) {
console.log(err);
}
})
4.在您自己的服务器上解密
注:解密接口可以使用腾讯官方演示进行修改。具体的转换将在后面描述
//3. 解密
wx.request({
url: 'http://xxxxx.com/demo/demo.php',//腾讯官方demo改造的接口页面
data: {
'encryptedData': encodeURIComponent(e.detail.encryptedData),//需要进行编码
'iv': e.detail.iv,
'session_key': data.data.session_key
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
}, // 设置请求的 header
success: function(data2) {
console.log(data2.data.phoneNumber)
if(data2.statusCode == 200) {
self.setData({
phone: data2.data.phoneNumber
})
}
},
fail: function(err) {
console.log(err);
}
})
JS部分的总体代码如下:
getPhoneNumber: function (e) {
if (e.detail.errMsg == "getPhoneNumber:fail user deny") return;
//用户允许授权
console.log("lv", e.detail.iv);
console.log(e.detail.encryptedData);
wx.showLoading()
var self=this
//1. 调用登录接口获取临时登录code
wx.login({
success: res => {
if(res.code){
//2. 访问登录凭证校验接口获取session_key、openid
wx.request({
url: "https://api.weixin.qq.com/sns/jscode2session",
data: {
'appid': "wxcc41e47562b08129",
'secret': "50e4379d67a6860d18157c53dc6ac3c2",
'js_code': res.code,
'grant_type': "authorization_code"
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
}, // 设置请求的 header
success: function (data) {
console.log("data", data)
if(data.statusCode==200){
//3. 解密
wx.request({
url: 'http://qdy8.gotoip4.com/demo/demo.php',
data: {
'encryptedData': e.detail.encryptedData,
'iv': e.detail.iv,
'session_key': data.data.session_key
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
}, // 设置请求的 header
success: function (data2) {
wx.hideLoading()
console.log(data2.data.phoneNumber)
if (data2.statusCode == 200 && data2.data.phoneNumber) {
self.setData({
phone: data2.data.phoneNumber
})
}
},
fail: function (err) {
console.log(err);
}
})
}
},
fail: function (err) {
console.log(err);
}
})
}
}
})
}
二.后端接口:
微信官方提供多种编程语言的示例代码(示例代码)。每种语言类型的接口名称相同,调用方法可以参考示例
如果你只是学习和研究,你可以买一个经济的虚拟主机,每年只需几十美元。然而,这个虚拟主机的大部分是PHP,所以这里我们以PHP为例来转换和接收前端请求
下载官方演示后,结构如下:
Transform demo.php:
将PHP的三个演示文件上传到虚拟主机:
然后您可以直接访问演示。PHP文件作为接口
三.易发生异常:
1.访问微信登录凭证验证界面获取会话密钥,如果报告以下错误,需要清除所有缓存并重新编译(更改appid后应该是开发工具的坑,如果不清除所有缓存会发生此错误):
无效代码,提示:[请求id:CPAsWa0325ha57]
2.decryption接口返回-41003,然后检查接口参数:
这篇关于微信applet开发的文章中的文章就是为了获取用户的手机号码(PHP接口解密)。有关获取用户移动电话号码的更多相关小程序,请搜索上一个脚本主页的文章或继续浏览下面的相关文章。我希望你将来会更多地支持ScriptHome 查看全部
网页手机号抓取程序(
微信小程序开发之获取用户手机号码,文中示例代码介绍)
微信小程序开发,获取用户手机号(PHP接口解密)
更新时间:2020年5月17日16:33:10作者:逍遥云天
本文文章主要介绍微信applet的开发,获取用户手机号。通过实例代码对其进行了详细的介绍,对大家的学习或工作有一定的参考价值。有需要的朋友,让我们和小编一起学习
稍后制作微信小程序,获取用户微信绑定的手机号。小程序开发文档中提供的获取移动电话号码的接口(getphonenumber())返回密文,需要在服务器上解密。然而,该官员提供的开发文件与以往一样混乱。如果不全面了解applet开发文档,理解解密过程仍然有点困难。这里,小程序从请求用户授权获取移动电话号码到获取移动电话号码的明文的整个过程被链接以便于快速理解,如下所示:
一.前端相关操作:
1.请求用户授权获取手机号码:
由于用户需要主动触发启动接口获取手机号,所以API没有调用此功能,需要点击组件触发,如下图:
wxml:
获取手机号码
js:
Page({
getPhoneNumber: function(e) {
if(e.detail.errMsg == "getPhoneNumber:fail user deny") return; //用户允许授权
console.log("lv", e.detail.iv); //包括敏感数据在内的完整用户信息的加密数据,需要解密
console.log(e.detail.encryptedData); //加密算法的初始向量,解密需要用到
......
}
})
2.access小程序登录界面:
小程序调用Wx。Login()获取临时登录证书代码并将其发送到开发人员服务器
Page({
getPhoneNumber: function(e) {
console.log(e.detail.errMsg)
console.log(e.detail.iv) //包括敏感数据在内的完整用户信息的加密数据,需要解密
console.log(e.detail.encryptedData) //加密算法的初始向量,解密需要用到
wx.login({
success: res => {
if(res.code){
console.log(res.code)
}
}
})
}
})
3.访问腾讯服务器登录证书验证界面:
注意:官方建议将其放在服务器端。这里,为了方便起见,将其放在前端请求上
请注意以下参数:
阿皮德
小程序唯一ID
秘密
applet的应用程序秘密
js_uu代码
登录时获取的代码
格兰特型
填写授权代码
//2. 访问登录凭证校验接口获取session_key
wx.request({
url: "https://api.weixin.qq.com/sns/jscode2session",
data: {
'appid': "xxxxxxxx",
'secret': "xxxxxxxx",
'js_code': res.code,
'grant_type': "authorization_code"
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
}, // 设置请求的 header
success: function(data) {
console.log("data", data.data.session_key)
},
fail: function(err) {
console.log(err);
}
})
4.在您自己的服务器上解密
注:解密接口可以使用腾讯官方演示进行修改。具体的转换将在后面描述
//3. 解密
wx.request({
url: 'http://xxxxx.com/demo/demo.php',//腾讯官方demo改造的接口页面
data: {
'encryptedData': encodeURIComponent(e.detail.encryptedData),//需要进行编码
'iv': e.detail.iv,
'session_key': data.data.session_key
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
}, // 设置请求的 header
success: function(data2) {
console.log(data2.data.phoneNumber)
if(data2.statusCode == 200) {
self.setData({
phone: data2.data.phoneNumber
})
}
},
fail: function(err) {
console.log(err);
}
})
JS部分的总体代码如下:
getPhoneNumber: function (e) {
if (e.detail.errMsg == "getPhoneNumber:fail user deny") return;
//用户允许授权
console.log("lv", e.detail.iv);
console.log(e.detail.encryptedData);
wx.showLoading()
var self=this
//1. 调用登录接口获取临时登录code
wx.login({
success: res => {
if(res.code){
//2. 访问登录凭证校验接口获取session_key、openid
wx.request({
url: "https://api.weixin.qq.com/sns/jscode2session",
data: {
'appid': "wxcc41e47562b08129",
'secret': "50e4379d67a6860d18157c53dc6ac3c2",
'js_code': res.code,
'grant_type': "authorization_code"
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
}, // 设置请求的 header
success: function (data) {
console.log("data", data)
if(data.statusCode==200){
//3. 解密
wx.request({
url: 'http://qdy8.gotoip4.com/demo/demo.php',
data: {
'encryptedData': e.detail.encryptedData,
'iv': e.detail.iv,
'session_key': data.data.session_key
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
}, // 设置请求的 header
success: function (data2) {
wx.hideLoading()
console.log(data2.data.phoneNumber)
if (data2.statusCode == 200 && data2.data.phoneNumber) {
self.setData({
phone: data2.data.phoneNumber
})
}
},
fail: function (err) {
console.log(err);
}
})
}
},
fail: function (err) {
console.log(err);
}
})
}
}
})
}
二.后端接口:
微信官方提供多种编程语言的示例代码(示例代码)。每种语言类型的接口名称相同,调用方法可以参考示例
如果你只是学习和研究,你可以买一个经济的虚拟主机,每年只需几十美元。然而,这个虚拟主机的大部分是PHP,所以这里我们以PHP为例来转换和接收前端请求
下载官方演示后,结构如下:

Transform demo.php:
将PHP的三个演示文件上传到虚拟主机:

然后您可以直接访问演示。PHP文件作为接口
三.易发生异常:
1.访问微信登录凭证验证界面获取会话密钥,如果报告以下错误,需要清除所有缓存并重新编译(更改appid后应该是开发工具的坑,如果不清除所有缓存会发生此错误):
无效代码,提示:[请求id:CPAsWa0325ha57]
2.decryption接口返回-41003,然后检查接口参数:

这篇关于微信applet开发的文章中的文章就是为了获取用户的手机号码(PHP接口解密)。有关获取用户移动电话号码的更多相关小程序,请搜索上一个脚本主页的文章或继续浏览下面的相关文章。我希望你将来会更多地支持ScriptHome
网页手机号抓取程序(网站访客手机号码获取,比方说你正在浏览今日头条,)
网站优化 • 优采云 发表了文章 • 0 个评论 • 555 次浏览 • 2021-09-16 11:26
客户提供:app name或app download link技术支持:精准的客户捕获系统,在三大运营商集团数据中心的大力支持下,采集线上线下全球用户数据,所有客户源数据均由运营商正式提供并以实名识别
自动发送电子邮件:网站,网页和应用程序手机号码提取。获得访客的QQ后,您可以自动向访客发送预编辑的QQ
那么网站我应该怎么做才能接到访客电话呢?那么如何抓住它呢?首先,无论是公交服务器还是线路,都由网络运营商控制
许多人想知道网站如何在应用程序中捕获和实现手机号码数据。我将在这里讨论一、数据的来源现在是数据
在过去,由于Android手机应用程序将强制获得“手机”许可,可以获得手机号码和IMEI代码,因此它改变了iPhone。iPhone应用程序无权从系统和软件级别获取手机号码。然而
下载应用程序后,使用手机号码注册并登录。登录后,单击右上角的图标添加要定位的手机号码。然后在下面的菜单中点击位置,实现号码定位。定位成功后,将显示此界面,以查看位置号的当前位置。给你
采集完成后,单击停止搜索,然后保存所需结果。有两种保存方法,一种是只保存手机号码,另一种是保存所有信息
网站visitor的手机号码获取,例如,如果您正在浏览今天的头条新闻,我们可以通过浏览今天的头条新闻获取您的手机号码,然后您可以向手机号码发送短信。获取网站访客手机号的价格 查看全部
网页手机号抓取程序(网站访客手机号码获取,比方说你正在浏览今日头条,)
客户提供:app name或app download link技术支持:精准的客户捕获系统,在三大运营商集团数据中心的大力支持下,采集线上线下全球用户数据,所有客户源数据均由运营商正式提供并以实名识别
自动发送电子邮件:网站,网页和应用程序手机号码提取。获得访客的QQ后,您可以自动向访客发送预编辑的QQ
那么网站我应该怎么做才能接到访客电话呢?那么如何抓住它呢?首先,无论是公交服务器还是线路,都由网络运营商控制
许多人想知道网站如何在应用程序中捕获和实现手机号码数据。我将在这里讨论一、数据的来源现在是数据
在过去,由于Android手机应用程序将强制获得“手机”许可,可以获得手机号码和IMEI代码,因此它改变了iPhone。iPhone应用程序无权从系统和软件级别获取手机号码。然而

下载应用程序后,使用手机号码注册并登录。登录后,单击右上角的图标添加要定位的手机号码。然后在下面的菜单中点击位置,实现号码定位。定位成功后,将显示此界面,以查看位置号的当前位置。给你
采集完成后,单击停止搜索,然后保存所需结果。有两种保存方法,一种是只保存手机号码,另一种是保存所有信息

网站visitor的手机号码获取,例如,如果您正在浏览今天的头条新闻,我们可以通过浏览今天的头条新闻获取您的手机号码,然后您可以向手机号码发送短信。获取网站访客手机号的价格