python幸运七实验_【python爬虫】原神公测预抽卡活动自动化抽卡脚本

[Python] 纯文本查看 复制代码import requests

import json

class Crawl():

#初始化cookies

def __init__(self):

self.login_ticket = "";

self.account_id="";

self.login_uid="";

self.cookie_token="";

#get请求

def get(self,url):

payload = {}

headers = {

'Cookie': 'login_uid='+self.login_uid+'; account_id='+self.account_id+'; login_ticket='+self.login_ticket+'; cookie_token='+self.cookie_token,

}

response = requests.request("GET", url, headers=headers, data = payload)

return json.loads(response.text)

#post请求

def post(self,url,data):

headers = {

'Cookie': 'login_uid='+self.login_uid+'; account_id='+self.account_id+'; login_ticket='+self.login_ticket+'; cookie_token='+self.cookie_token

}

response = requests.request("POST", url, headers=headers, data = data)

return json.loads(response.text)

def post2(self,url):

headers = {

'Cookie': 'login_uid='+self.login_uid+'; account_id='+self.account_id+'; login_ticket='+self.login_ticket+'; cookie_token='+self.cookie_token

}

response = requests.request("POST", url, headers=headers, data = {})

return json.loads(response.text)

#获取以获得的物品

def item_list(self):

url = "https://api-takumi.mihoyo.com/event/e20200828bingo/item_list"

res = self.get(url)

return res

#分享

def share(self):

url = "https://api-takumi.mihoyo.com/event/e20200828bingo/share"

res = self.get(url)

return res

#获取基本信息,是否分享,还剩翻卡次数

def home(self):

url ="https://api-takumi.mihoyo.com/event/e20200828bingo/home"

res = self.get(url)

return res

#获取验证码

def getCaptcha(self,mobile):

body ={"action_type":"login","t":"1599809011444","mobile":mobile}

url = "https://webapi.account.mihoyo.com/Api/create_mobile_captcha";

res = self.post(url,body)

return res

def login(self,mobile,captcha):

body ={"mobile_captcha":captcha,"is_bh2":"false","action_type":"login","t":"1599809011444","mobile":mobile}

url = "https://webapi.account.mihoyo.com/Api/login_by_mobilecaptcha";

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36',

}

session = requests.session()

response = session.post(url, headers=headers, data = body)

res = json.loads(response.text)

if(res["code"] == 200 and res["data"]['status'] == 1 ):

self.login_ticket = str(res["data"]['account_info']['weblogin_token']) ;

self.account_id= str(res["data"]['account_info']['account_id']);

self.login_uid= str(res["data"]['account_info']['account_id']);

cookies_url = "https://webapi.account.mihoyo.com/Api/cookie_accountinfo_by_loginticket?t=1599809011444&login_ticket="+res["data"]['account_info']['weblogin_token']

headers = {

'Cookie': 'login_uid='+self.login_uid+'; account_id='+self.account_id+'; login_ticket='+self.login_ticket

}

response = session.get(cookies_url, headers=headers)

cookies_res = json.loads(response.text)

self.cookie_token= str(cookies_res["data"]['cookie_info']['cookie_token']);

def gameinfo(self,flag):

url = "https://api-takumi.mihoyo.com/event/e20200828bingo/"+flag

if(flag == 'start'):

res = self.post(url,{})

else:

res = self.get(url)

return res['data']['game_id']

def click(self,game_id):

sum = 0

for i in range(9):

url = "https://api-takumi.mihoyo.com/event/e20200828bingo/next?game_id="+str(game_id)+"&index="+str(i);

res = self.post2(url)

if res["message"] == "OK":

sum +=1

if sum == 9:

print("本轮翻卡完毕")

if __name__ == '__main__':

#主程序

crawl = Crawl()

# 登录

print("开始登录————")

mobile = input("请输入手机号码:")

print("开始获取验证码————")

print(crawl.getCaptcha(mobile))

captcha = input("请输入验证码:")

crawl.login(mobile,captcha)

#分享

homeRes = crawl.home()

nowday_share_cnt = homeRes['data']['nowday_share_cnt']

if nowday_share_cnt == 0:

print("开始分享————")

print(crawl.share())

#获取基本信息

print("获取基本信息————")

homeRes = crawl.home()

print(homeRes)

lucky = homeRes['data']['lucky']

chance = homeRes['data']['chance']

print("当前幸运值:"+str(lucky))

print("可抽卡数:"+str(chance))

word = None

while word != "":

word = input("是否进行翻卡,继续请输入回车,退出请直接关闭")

if chance == 0:

print("您今天的抽卡已经到达上限,请次日再来")

word = None

while word != "":

word = input("您的今日的翻卡完毕,请输入回车关闭程序")

exit()

print("开始翻卡————")

new_round = homeRes['data']['new_round']

for index in range(chance):

print("开始第"+str(index+1)+"次翻卡")

if new_round == True:

flag = "start"

game_id = crawl.gameinfo(flag)

crawl.click(game_id)

else:

flag = "game_info"

game_id = crawl.gameinfo(flag)

crawl.click(game_id)

word = None

while word != "":

word = input("您的今日的翻卡完毕,请输入回车关闭程序")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值