python爬虫之QQ空间登陆获取信息(超级详细)

您所在的位置:网站首页 qq空间登陆电脑版 python爬虫之QQ空间登陆获取信息(超级详细)

python爬虫之QQ空间登陆获取信息(超级详细)

2024-07-10 17:37| 来源: 网络整理| 查看: 265

一、背景: 前几天收到了一个需求:获取QQ好友,QQ群,QQ群友的账号。但是我却抓不到QQ程序的包就很尴尬,我觉得应该是QQ程序之间的通讯协议大部分不是HTTP或者HTTPS,而我用的是Fillder所以找不到包,但是不影响我完成需求的进度,我找了QQ的大部分相关应用,最后在QQ空间找到了能满足这个需求的数据,于是我换了个思路和方法,去QQ空间里面抓数据。 在这里插入图片描述

二、分析: QQ空间一般是两种登陆方式:一是账号密码登陆,二是扫码登陆,领导要求的是扫码登陆,于是我就做扫码登陆把。

经过反复抓包查看数据,发现登陆的相关接口有下面这几个(先记着后文中不使用连接而使用接口名字): https://xui.ptlogin2.qq.com/cgi-bin/xlogin 登陆页面 https://ssl.ptlogin2.qq.com/ptqrshow 二维码图片 https://ssl.ptlogin2.qq.com/ptqrlogin 登陆校验

首先,我们分析下登陆校验需要哪些参数(因为最容易发现,一进去就一直在等待校验): 在这里插入图片描述 经过反复抓包测试,发现所需要的不定参数:ptqrtoken,action,login_sig。一眼就可以看出action是一个时间戳拼接字段,而其他的两个字段应该是进入页面请求时候设置的cookie值,通过全局搜索字段发现login_sig就是登陆页面的pt_login_sig。

然后,去访问登陆页面获取cookie中的pt_login_sig对应的值,多次抓包发现接口的参数是固定的: 在这里插入图片描述 至于,ptqrtoken全局搜索会发现一个c_login_2.js的js文件,到preview视图格式化js代码查找ptqrtoken会发现有下面这样一段代码: 在这里插入图片描述 很明显,他的意思就是get某个cookie中的qrsig字段,然后进行hash33加密,先全局找下qrsig,发现二维码图片的cookie中有这个字段,获取字段的同时把二维码保存下来,这个接口除了一个参数是0-1之间的随机数其他的都是固定的。 在这里插入图片描述 再全局找下hash33加密过程,结果还是在c_login_2.js这个文件中找到以下代码段: 在这里插入图片描述 把js代码转换为python代码:

def __decrypt_qrsig(self, qrsig): e = 0 for c in qrsig: e += (e


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3