用Python中request如何实现自动签到
小编给大家分享一下用Python中request如何实现自动签到,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨方法吧!
使用selenium实现自动签到确实是一个方便快捷的方式,但不可否认的是这种方式确实有一个硬伤,就是太慢了,模拟浏览器进行加载、点击操作,即使用上显性等待这种高端操作也最多只能把整个运行过程优化到5秒以内。
作为一个有性能洁癖的程序猿,5秒显然是我不能接受的。那还有什么方式比它更快呢,很简单,直接发post请求啊,直接对网站发起post或get请求永远是最快的方式,网上流传的各种秒杀脚本用的也是这种方式。
requests库的使用
本来之前用scrapy做了一个版本,结果发现为了实现这么个小功能用scrapy太过笨重,代码量还多,干脆换成requests。
requests库的使用方法非常简单,网上有对应的中文文档可以参考requests文档。
直接上代码
response=requests.get("http://www.baidu.com")print(response.text)
post请求则是要先实例化一个session对象,用session对象进行后续的post请求和其他操作,session对象会为你保存你的登录状态,包括cookie等内容。
form_data1={"mobile":"xxxx","mobileErr":"","password":"xxxx","passwordErr":"","uuid":"0","mid":"0"}s=requests.Session()response=s.post(login_url,data=form_data)#print(response.text)
当session携带了登录信息之后就可以进行后续的签到操作,而签到操作也很简单,直接用gei请求访问一下签到按钮对应的链接即可。
当然无论是获取签到按钮的链接还是获取登录所需要的的form表单数据都离不开抓包。
我用的抓包软件是Fiddler,抓包这里我就不详细讲了,网上可以搜到很多教程。
最后把完整代码放一下。
importrequestsimportsysimporttracebacklogin_url="https://gf2.wmbuluo.com/addons/yun_shop/api.php?i=2&uuid=0&mid=0&type=5&shop_id=null&route=member.login.index"target_url='https://gf2.wmbuluo.com/addons/yun_shop/api.php?i=2&uuid=0&mid=0&type=5&shop_id=null&route=plugin.sign.Frontend.Modules.Sign.Controllers.sign.sign'form_data1={"mobile":"xxxx","mobileErr":"","password":"xxxx","passwordErr":"","uuid":"0","mid":"0"}defrun(form_data):s=requests.Session()response=s.post(login_url,data=form_data)#print(response.text)#print(response.status_code)ifresponse.status_code==200:resp=s.get(target_url)print(resp.status_code)defmain():run(form_data1)print("run1")if__name__=='__main__':try:sys.exit(main())exceptExceptionase:traceback.print_exc()
看完了这篇文章,相信你对用Python中request如何实现自动签到有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。