网页爬虫 - 求高手python爬虫:对扫描二维码的模拟登录问题
迷茫
迷茫 2017-04-18 09:06:16
0
2
728

微信网页版登录需要扫描二维码,做Python爬虫的时候该如何模拟这个过程?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

Antworte allen(2)
阿神

首先你的得会python 还要会抓包分析

刘奇

大致步骤:

  • 从网页获取这个二维码图片的URL(用PhantomJS)

  • 用URL下载这个图片(Python)

  • 把图片保存到你的手机(ssh/adb)

  • 通过你手机端的微信,访问解析二维码的方法,把这个图片传过去(android/ios的自动化测试框架)

补充:为什么PC端不能独立完成?

微信网页版的二维码相当于是给当前浏览器生成一个Key,微信的手机客户端在已登录的状态下可以通过扫码获取这个Key,并告诉微信服务器,这话Key就是这个已登录的用户,因此PC端浏览器被授权访问聊天界面。

这个过程是由微信手机端,与微信服务器一同完成的,并不是通过Python解析出这个二维码就可以解决。

另外,我们从浏览器上看到的二维码代码是这样的:

<img class="img" mm-src="https://login.weixin.qq.com/qrcode/Ie8OIBZqJQ==" mm-src-load="qrcodeLoad" mm-src-parallel="" mm-src-timeout="10" mm-src-retry-count="2" src="https://login.weixin.qq.com/qrcode/Ie8OIBZqJQ==">

而Python用requests或urllib获取到的HTML是这样的:

<img class="img" mm-src="{{qrcodeUrl}}"  mm-src-load="qrcodeLoad" mm-src-parallel mm-src-timeout="10" mm-src-retry-count="2" src="https://res.wx.qq.com/zh_CN/htmledition/v2/images/img2e4e03.gif">

其中这个{{qrcodeUrl}}需要执行js才能生成,所以我上面写用PhantomJS来获取这个页面,然后把图片给Python。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!