# -*- coding:UTF-8 -*-

# author:sommuni
# contact: test@test.com
# datetime:2022/11/1 00:23
# software: PyCharm

'Author:KissKiss'
'new Env('喜爱帮提现')'
'cron:25 15 27 * *'

import requests, time, json, re

XAB_list = [
    {
        'phone': '13151146388',
        'password': 'lu123456',
    },
    {
        'phone': '13901453799',
        'password': 'lu123456',
    },
]


def login():
    '''
    登陆
    :return:
    '''
    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}')


if __name__ == '__main__':
    print(f'======[喜爱帮提现]=====
共{len(XAB_list)}个账号', flush=True)
    for XAB in XAB_list:
        try:
            ck = login()
            get_user(ck)
        except Exception as e:
            error_msg = str(e)
            print(f'提现失败,错误信息:{error_msg}', flush=True)
            print('跳过执行下一个', flush=True)
            print('---------------------------', flush=True)
            continue
        print('---------------------------', flush=True)
喜爱帮提现脚本 - 自动化提现工具

原文地址: https://www.cveoy.top/t/topic/pb6H 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录