本帖最后由 Foticing 于 2023-5-18 12:06 编辑
本人是嵌入式专业的,因为对python感兴趣,所以自学了python。又刚好看到某创硬件开源平台有签到获取积分可以兑换很多东西。但是自己懒,而且容易忘记签到。所以想整个自动签到的。
这是用F12抓出来的包,分析了下然后写下了下面这些代码
[Python] 纯文本查看 复制代码 import random
import requests
import time
USER_AGENT_LIST = [
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36',
'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13',
'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/531.4 (KHTML, like Gecko) Chrome/3.0.194.0 Safari/531.4',
]
def user_agent():
return random.choice(USER_AGENT_LIST)
# cookies填这里
USER_COOKIES_LIST = [
'COOKIES'
]
def Li_Chuang_Sign(user,cookie):
url1 = "https://xxx.com/api/user/sign_in"
headers = {
'Host':'xxx.com',
'User-Agent':f'{user}',
'Accept':'*/*',
'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'X-Requested-With':'XMLHttpRequest',
'Origin':'https://xxx.com',
'Connection':'keep-alive',
'Referer':'https://xxx.com/sign_in',
'Cookie':f'{cookie}',
'Sec-Fetch-Dest':'empty',
'Sec-Fetch-Mode':'cors',
'Sec-Fetch-Site':'same-origin',
'Accept-Encoding':'gzip,deflate',
'Content-Length':'0'
}
response = requests.post(url=url1, headers=headers).json()
print(response)
def handler(event, context):
for i in range(0, len(USER_COOKIES_LIST)):
user = user_agent()
Li_Chuang_Sign(user,USER_COOKIES_LIST[i])
-----------------------------------------------------------分割线--------------------------------------------------------------
[Python] 纯文本查看 复制代码 # 这个是云函数签到过,我再手签后的响应
{"success":false,"code":422,"message":"\u6bcf\u65e5\u53ea\u80fd\u7b7e\u5230\u4e00\u6b21\uff01"}
这个代码没问题,问题在某创的服务器风控机制挺严格的,cookies很快就更新,导致不能自动签到。于是我又尝试用客户编号+密码登陆后再签到,抓了下包看看
这个pubKey是通过请求第一个链接获取到的password是258位的一个密文,加密方式还不知道。其他的一些参数也可以通过靓汤在网页里获取到。因此自动签到就卡在这里了。。。。。等我再去学习学习后再尝试
试了下@三滑稽甲苯提供的思路,有那么一点头绪了
先进行32位MD5加密 str是我随便输入了
加密后:
我试着去解密一下,也对的上
后续再看看sm2Encrypt(cotent,pubKey)这个函数 |