喜爱帮提现脚本 - 自动化提现工具
喜爱帮提现脚本
该脚本可以自动登录喜爱帮账号,查询余额,并进行提现操作,支持多账号管理。
使用说明
- 将账号信息填写在
XAB_list列表中,每个账号信息包含phone和password两个字段。 - 修改
cron配置,设置脚本运行时间。 - 运行脚本。
代码示例
import requests, time, json, re
XAB_list = [
{
'phone': '13151146388',
'password': 'lu123456',
},
{
'phone': '13901453799',
'password': 'lu123456',
},
]
def login():
'登陆'
t = str(int(time.time()) * 1000)
session = requests.session()
url = f'https://m.xiaicn.com/cas/login?_random={t}'
headers = {
'Host': 'm.xiaicn.com',
'x-requested-with': 'XMLHttpRequest',
'user-agent': 'Mozilla/5.0 (Linux; Android 11; MI 9 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36 HuoNiuFusion/1.16.0_212560',
'content-type': 'application/x-www-form-urlencoded',
'origin': 'https://m.xiaicn.com',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
'referer': 'https://m.xiaicn.com/cas/login',
'accept-encoding': 'gzip, deflate',
}
response = session.get(url=url).text
csrf_token = re.findall('name="_csrf_token" value="(.*?)"/>', response)[0]
data = f'_csrf_token={csrf_token}&_target_path=&_username={XAB['phone']}&_password={XAB['password']}'
response = session.post(url, headers=headers, data=data).headers['set-cookie']
USER_REMEMBER_ME = re.findall('USER_REMEMBER_ME=(.*?) expires', response)[0]
NiuToken = re.findall('NiuToken=(.*?) expires', response)[0]
ck = f'USER_REMEMBER_ME={USER_REMEMBER_ME}NiuToken={NiuToken}'
return ck
def get_channelId(ck):
url = f'https://m.xiaicn.com/user/withdraw'
headers = {
'Host': 'm.xiaicn.com',
'x-requested-with': 'XMLHttpRequest',
'user-agent': 'Mozilla/5.0 (Linux; Android 11; MI 9 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36 HuoNiuFusion/1.16.0_212560',
'content-type': 'application/x-www-form-urlencoded',
'origin': 'https://m.xiaicn.com',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
'referer': 'https://m.xiaicn.com/cas/login',
'accept-encoding': 'gzip, deflate',
}
headers['cookie'] = ck
response = requests.get(url, headers=headers).text
channelId = \
re.findall('a href="javascript:" class="cell cell-channel" action="sel-channel" data-id="(.*?)">', response)[0]
return channelId
def get_user(ck):
url = f'https://m.xiaicn.com/user/home'
headers = {
'Host': 'm.xiaicn.com',
'x-requested-with': 'XMLHttpRequest',
'user-agent': 'Mozilla/5.0 (Linux; Android 11; MI 9 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36 HuoNiuFusion/1.16.0_212560',
'content-type': 'application/x-www-form-urlencoded',
'origin': 'https://m.xiaicn.com',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
'referer': 'https://m.xiaicn.com/cas/login',
'accept-encoding': 'gzip, deflate',
}
headers['cookie'] = ck
response = requests.get(url, headers=headers)
popUid = re.findall('popUid=(.*?) expires', response.headers['set-cookie'][0])
nickname = re.findall('<div class="nickname">(.*?)</div>', response.text)[0]
money = re.findall('<span class="val">(.*?)</span>', response.text)[0]
print(f'用户[{nickname}]余额:{money}', flush=True)
ck = f'{ck}popUid={popUid}'
if int(float(money)) < 5:
print('余额不足5元跳过提现', flush=True)
else:
channelId = get_channelId(ck)
withdraw(ck, channelId)
def withdraw(ck, channelId):
session = requests.session()
url = f'https://m.xiaicn.com/user/withdraw/income?channelId={channelId}'
headers = {
'Host': 'm.xiaicn.com',
'x-requested-with': 'XMLHttpRequest',
'user-agent': 'Mozilla/5.0 (Linux; Android 11; MI 9 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36 HuoNiuFusion/1.16.0_212560',
'content-type': 'application/x-www-form-urlencoded',
'origin': 'https://m.xiaicn.com',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
'referer': 'https://m.xiaicn.com/cas/login',
'accept-encoding': 'gzip, deflate',
}
headers['cookie'] = ck
# print(headers)
response = session.get(url, headers=headers).text
# print(response)
csrf_token = re.findall('name="csrfToken" value="(.*?)"/>', response)[0]
"""
上面拿csrf_token
"""
t = str(int(time.time()) * 1000)
url = f'https://m.xiaicn.com/user/withdraw/income/submit?_random={t}'
headers = {'Host': 'm.xiaicn.com', 'accept': 'application/json, image/webp', 'x-requested-with': 'XMLHttpRequest',
'user-agent': 'Mozilla/5.0 (Linux; Android 11; MI 9 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36 HuoNiuFusion/1.16.0_212560',
'content-type': 'application/x-www-form-urlencoded', 'origin': 'https://m.xiaicn.com',
'sec-fetch-site': 'same-origin', 'sec-fetch-mode': 'cors', 'sec-fetch-dest': 'empty',
'referer': f'https://m.xiaicn.com/user/withdraw/income?channelId={channelId}',
'accept-encoding': 'gzip, deflate', 'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7'}
headers['cookie'] = ck
data = f'money=5.00&csrfToken={csrf_token}&channelId={channelId}'
# print(data)
response = session.post(url, headers=headers, data=data).json()
print(f'提现结果:{response}')
if response['code'] != 0:
error_msg = response['msg']
print(f'提现失败,错误信息:{error_msg}')
print('跳过执行下一个', flush=True)
if __name__ == '__main__':
print(f'======[喜爱帮提现]=====
共{len(XAB_list)}个账号', flush=True)
for XAB in XAB_list:
try:
ck = login()
get_user(ck)
except:
print('跳过执行下一个', flush=True)
print('---------------------------', flush=True)
continue
print('---------------------------', flush=True)
注意事项
- 脚本需要在Python环境下运行。
- 请勿使用该脚本进行非法操作。
- 脚本仅供参考,请根据自身需求进行修改。
联系方式
如有问题,请联系:test@test.com
原文地址: http://www.cveoy.top/t/topic/pb6J 著作权归作者所有。请勿转载和采集!