利用python登录网页并自动签到
最近接触python操作网页,甚是方便。很多网站为了粘贴用户,要求每天签到送积分,而我们这么忙哪有空去干这个呀,python可以自动帮我们做这个事情。
实验网站:www.shuobar.com,这是一个提供免费电话的网站,以前在任何时候打电话都免费的,但是现在只能在中午12点之前免费,其他时间打电话要积分,每天签到可以送一些积分
实验方法:windows下pyhton编程
1、用户的登录。www.shuobar.com采用QQ授权登录,不提供帐号密码的登录方式,这给自动签到带来一些不便,首先研究一下QQ授权登录的原理。
用火狐或者google浏览器打开www.shuobar.cn首页,提示要求用QQ一键登录,打开火狐或者goolge浏览器自带的调试工具,其实就是右击网页,选择“查看元素”即可。
点击QQ一键登录按钮,将会到了QQ授权的页面,我没有了解过QQ授权的原理,但是通过多次测试,www.shuobar.cn的授权页面的URL一直是
http://openapi.qzone.qq.com/oauth/show?which=Login&display=pc&response_type=code&client_id=100478975&redirect_uri=http%3A%2F%2Fwww.shuobar.cn%2Fuser%2Fqqlogincallback.html&scope=get_user_info
所以,我猜测只要向这个页面POST一些东西就行了,那么现在测试一下需要POST什么。
2、POST数据的分析
利用浏览器自带的调试工具可以看到授权时到底POST了什么东西,在点击授权的同时观察页面POST的数据如下面所示
response_type:code
client_id:100478975
redirect_uri:http://www.shuobar.cn/user/qqlogincallback.html
scope:get_user_info
state:
src:1
update_auth:0
openapi:#
g_tk:1420953836
auth_time:1425356396524
ui:E2E88641-4784-46A5-96E1-95A0BD67AF80
client_id想必就是www.shuobar.cn这个网站的ID了,这个不会变的,g_tk不知道是个什么东西,但是貌似也不会变,只有auth_time和ui会变,我们只要找到这两个东西,把它POST上去就行了。
auth_time很明显就是现在的时间嘛,这个利用python可以很容易得到,那么ui到底是什么东西呢?