最近想要弄一下博客的评论区的自动填表功能,实现输入QQ号就自动获取相关的昵称信息以及头像,但是很不幸的是,现在接口需要鉴权访问,这就很难受了。为了更加方便,所以我选择了去抓取QQ的查询用户的接口。
当然,本文的接口并不是对QQ的通信协议进行抓取,而仅仅是针对查询接口的API,L7上的一些操作罢了。
Fiddler 下载&安装
由于原版的Fiddler存在问题,所以我这里是下载的一个精易论坛的版本,可以捕获其他进程的 HTTP/HTTPS 数据包,如果非要用原版的则需要配置一个「Proxy」代理,指向Fiddler的端口,例如下图所示:
记得要勾选「捕获HTTPS连接」这个选项,并且要信任根证书!
抓取腾讯接口
这里我们打开QQ的查找界面,点击后看看Fiddler的情况:
选择QQ进程,并右键选择仅显示当前进程,接着我们输入一个能够搜索到的QQ号码,如果搜索不到或者主显账号不是QQ号的都是搜索不到的:
我们看一下Host,找到第一个「find.qq.com」,我们解析一下他的返回内容,看看到底返回了些什么:
{
"retcode": 0,
"result": {
"sret": 0,
"exact": 0,
"buddy": {
"info_list": [
{
"uin": "2675395607",
"nick": "小伍同学",
"country": "",
"province": "",
"city": "",
"gender": 1,
"age": 22,
"url": "http://thirdqq.qlogo.cn/g?b=oidb\u0026k=yO4o4G1Hx777EINfWTCgvQ\u0026kti=ZMM2TAAAAAE\u0026s=100\u0026t1687699262"
}
],
"exact": "",
"sessionid": 0
},
"qidian": null,
"qiye": null
}
}
很好,那么这里我们就成功获取到了我们想要的内容:QQ昵称和QQ头像链接。
请求分析
Good,那么我们再来看看这个请求所发送的内容:
经过分析,这个Cookies里的「Skey」和「Uin」为必传参数,其他的可以不包含在Cookies,那么当然这个Skey也是有过期时间的,所以后续我再想想办法搞一个账号密码的登录协议接口。
我们将这个请求体交给AI,并让他转换为Python格式的代码即可。
示例代码
您需要回复本文后才能查看完整内容
其他
目前新版NT架构的QQ还没测试,但是老版本的话,这个QQ查找页面其实是嵌套了一层webview,其中指向的URL为:https://find.qq.com/index.html?version=1&im_version=6001&width=910&height=610&search_target=0
不过搜索好友的接口还是做了鉴权,和示例代码中的请求API地址是一致的。给个图大家自己体会一下:
感谢分享
好家伙 QQ查询界面竟然是Webview
确实,老版本
示例代码回复后即可看到