基于Python实现签到脚本过程解析

yipeiwu_com6年前Python基础

无聊刷日剧,看到签到断了好久,简单写了个脚本,通过模拟抓包的方式实现

1、先登录到字幕组网站获取token

2、用获取到的token登录到人人活动页面获取cookie

3、用获取到的cookie进行签到

import requests
import json
import time
def main():
 # 登录,获取用户信息
 info = json.loads(get_token())
 uid,token = info['data']['uid'],info['data']['token']
 # 登录到活动中心,获取cookie
 cookies = get_huodong(uid,token)
 # 签到
 while True:
 qiandao(cookies)
 time.sleep(10800)
def qiandao(cookies):
 headers["Cookie"] = 'PHPSESSID={}'.format(cookies)
 info_url = "http://h5.rrhuodong.com/index.php?g=api/mission&m=index&a=user_info"
 info = json.loads(get(info_url).text)['data']
 print("称昵:{}\n等级:{}\n人人钻:{}\n".format(info['nickname'],info['main_group_name'],info['point']))
 qiandao_login_url = "http://h5.rrhuodong.com/index.php?g=api/mission&m=clock&a=store&id=2"
 print("签到信息:{}".format(json.loads(get(qiandao_login_url).text)['info']))
def get_huodong(uid,token):
 huodong_login_url = "http://h5.rrhuodong.com/index.php?g=api/mission&m=index&a=login&uid={}&token={}".format(uid,token)
 return requests.utils.dict_from_cookiejar(get(huodong_login_url).cookies)['PHPSESSID']
def get_token():
 token_login_url = "http://a.zmzapi.com/index.php?g=api/public&m=v2&accesskey={}&client=2&a=login&account={}&password={}".format(accesskey,username,passwd)
 return get(token_login_url).text
def get(url):
 content = requests.get(url.format(username,passwd), headers=headers, verify=False, allow_redirects=False)
 return content
if __name__ == '__main__':
 # 浏览器头部
 headers = {
 "User-Agent":"Mozilla/5.0 (Linux; U; Android 9; zh-cn; MI 6 Build/9.0) AppleWebKit/533.1 (KHTML, like Gecko) Version/5.0 Mobile Safari/533.1"
 }
 # 账号、密码、accesskey需要自己抓包
 username = '账号'
 passwd = '密码'
 accesskey="xxx"
 main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python中利用xml.dom模块解析xml的方法教程

一、什么是xml?有何特征? xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 例子:del.xml <?xm...

利用python打开摄像头及颜色检测方法

最近两周由于忙于个人项目,一直未发言了,实在是太荒凉了。。。。,上周由于项目,见到Python的应用极为广泛,用起来也特别顺手,于是小编也开始着手学习Python,…下面我就汇报下今天的...

python在新的图片窗口显示图片(图像)的方法

python在新的图片窗口显示图片(图像)的方法

使用python画图,发现生成的图片在console里。不仅感觉很别扭,很多功能也没法实现(比如希望在一幅图里画两条曲线)。 想像matlab一样单独地生成一个图片窗口,然后我在网上找了...

Python中asyncore的用法实例

本文实例讲述了python中asyncore模块的用法,分享给大家供大家参考。具体方法如下: 实例代码如下: ##asyncore import asyncore,socket...

解决Python内层for循环如何break出外层的循环的问题

偶然发现了for…else…这种用法,使用这个实现了break跳出嵌套的for循环 In [31]: for i in range(1,5): ...: for j in r...