网页抓取qq(登陆页面二维码图片登陆校验需要哪些参数(上)?)

优采云 发布时间: 2021-12-09 09:09

  网页抓取qq(登陆页面二维码图片登陆校验需要哪些参数(上)?)

  一、背景:前几天收到一个请求:获取QQ好友、QQ群、QQ群好友的账号。可惜抓不到QQ程序的包。我觉得应该是QQ程序之间的通讯协议大部分不是HTTP或HTTPS,我用的Fillder所以找不到包,但不影响我完成需求。找了大部分QQ的相关应用,终于在QQ空间找到了可以满足这个需求的数据。于是我改变了思路和方法去Qzone抓数据。

  

  二、分析:QQ空间一般采用两种登录方式:一种是账号密码登录,一种是扫码登录。领导要求扫码登录,所以我来做扫码登录。

  反复抓包查资料,发现相关登录接口如下(注意后面文中用接口名代替连接):

  登录页面

  二维码图片

  登录验证

  首先我们分析一下登录验证需要哪些参数(因为它最容易找到,而且我们一进入就一直在等待验证):

  

  经过反复抓包测试,发现需要的参数不定:ptqrtoken、action、login_sig。一看就知道action是一个时间戳拼接字段,另外两个字段应该是页面请求时设置的cookie值。通过全局搜索字段发现login_sig就是登录页面的pt_login_sig。

  然后,到登录页面获取cookie中pt_login_sig对应的值。经过几次抓包,发现接口参数是固定的:

  

  至于ptqrtoken全局搜索,会找到c_login_2.js的js文件。进入预览视图格式化js代码,搜索ptqrtoken,会发现如下一段代码:

  

  很明显,他的意思是获取某个cookie中的qrsig字段,然后进行hash33加密,首先全局查找qrsig,发现二维码图片的cookie中有这个字段,同时保存二维码获得领域。这个接口是固定的,除了一个参数是0-1之间的随机数。

  

  然后全局查找hash33加密过程,结果还是c_login_2.js文件中找到的如下代码片段:

  

  将js代码转换为python代码:

<p> def __decrypt_qrsig(self, qrsig):

e = 0

for c in qrsig:

e += (e

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线