前一段时间,学习了有关django和requests的一些知识,就想再次理解http请求和requests模块的应用,所以写了一个web卫星root
下面记录一下我的学习经历:
#####1:分析如何获取web微信的二维码
进入web微信官网
这里的redirct....是重定向,不是必须的,所以可以进行删除,最后zh-CN&_=后是一个时间戳,所以我们可以对url进行构造
'https://login.wx.qq.com/jslogin?appid=wx782c26e4c19acffb&fun=new&lang=zh_CN&_=%s'这里%s是占位符,因此我们可以用requests模块模拟GET请求来获取信息,
CTIME = time.time()
responses = requests.get(
url='https://login.wx.qq.com/jslogin?appid=wx782c26e4c19acffb&fun=new&lang=zh_CN&_=%s' % CTIME
)
接着看这个请求的返回值
这里返回了一个码,接着看网页中的二维码的img的url
这里的img的src中最后跟了一个码,一比较会发现是相同的所以可以在html的login.html中构造img的src属性
先通过requests
responses = requests.get(
url='https://login.wx.qq.com/jslogin?appid=wx782c26e4c19acffb&fun=new&lang=zh_CN&_=%s' % CTIME
)
在用re正则来提取qcode
v = re.findall('uuid = "(.*)";', responses.text)
global QCODE
QCODE = v[0]
return render(request, 'login.html', {'qcode': QCODE})
最后将返回qcode显示在login.hmtl网页上
<img style="height: 340px;width: 340px;" id='qrcode' src="https://login.weixin.qq.com/qrcode/{{ qcode }}">
这样就实现了二维码的更新
这里有完整的源码https://github.com/LelandYan/weixinroot
欢迎指教