【更新V2.0】葫芦侠3楼一键自动签到工具及源码(可云函数)

# -*- coding: UTF-8 -*-
"""
* @脚本作者: 佚名RJ
* @创建时间: 2023/06/15 10:14
* @目标地址:
* @软件版本: V2.0
* @脚本用途: 葫芦侠三楼使用_key一键签到的脚本
* @使用说明: 手机抓包获取葫芦侠三楼账号登录的_key参数,运行此脚本填入即可!
* @其它说明: 注释第31行,使用第32行并将_key填入,可挂云函数使用。

"""

import requests
import time
import hashlib
import os


# MD5加密
def md5(param):
    m = hashlib.md5()
    b = param.encode(encoding='utf-8')
    m.update(b)
    passwd_md5 = m.hexdigest()
    return passwd_md5


# 签到函数
def signin():
    # _key参数抓登录包获取
    _key = input("请输入抓包账号响应获取的_key:")
    # _key = ""
    print("============================开始签到请耐心等待============================")
    number = 0  # 成功计数
    continueDays = 0  # 连续签到天数
    experienceVal = 0  # 本次签到经验

    catid = {1, 2, 3, 4, 6, 15, 16, 21, 22, 23, 29, 34, 43, 44, 45, 56, 57, 58, 60, 63, 67, 68, 69, 70, 71, 76, 77, 81,
             82, 84, 90, 92, 94, 96, 98, 102, 105, 107, 108, 110, 111, 115, 119, 120, 121}
    # 每个版块的ID,包含隐藏版块ID
    # for i in range(1, 122):
    for i in catid:
        cat_id = str(i)
        # print(cat_id)

        # 获取时间戳
        time_s = str(time.time()).split(".")[0] + str(time.time()).split(".")[1][0:3]
        # print(time_s)   # 1683335343675

        # 无需device_code版本
        url = f"http://floor.huluxia.com/user/signin/ANDROID/4.1.8?platform=2&gkey=000000&app_version=4.2.0.5&versioncode=20141475&market_id=floor_web&_key={_key}&phone_brand_type=OP&cat_id={cat_id}&time={time_s}"

        # 使用split方法按照'&'字符分割URL
        params = url.split('&')
        # 遍历分割后的字符串列表,找到cat_id和time参数
        cat_id1 = None
        time1 = None
        for param in params:
            if 'cat_id' in param:
                cat_id1 = param.split('=')[1]
            elif 'time' in param:
                time1 = param.split('=')[1]

        # 将cat_id和time和不变的voice_code组合成一个字符串
        sign = md5('cat_id' + cat_id1 + 'time' + time1 + 'fa1c28a5b62e79c3e63d9030b6142e4b')
        # print("30de847e271b50b342ae95fab5cdc4e4")
        # print(sign)
        data = {
            "sign": sign  # 动态sign
        }
        headers = {
            "Accept-Encoding": "identity",
            "Host": "floor.huluxia.com",
            'User-Agent': 'okhttp/3.8.1',
            "Content-Type": "application/x-www-form-urlencoded",
            "Content-Length": "37"
        }
        response_res = requests.post(url=url, headers=headers, data=data)
        # 打印请求的url
        # print(response_res.request.url)
        # 打印请求的参数
        # print(response_res.request.body)
        # 打印请求后返回的结果
        # print(response_res.json())
        dic = response_res.json()
        # 获取签到的状态,状态:0为失败,1为成功。
        status = dic['status']
        tt = "	"
        if status == 1:
            continueDays = dic['continueDays']  # 连续签到天数
            experienceVal = dic['experienceVal']  # 本次签到经验
            number += 1  # 每次签到成功就+1,最后记总成功次数。
            msg = f'版块ID为{cat_id}{tt}签到状态:成功{tt}获得{experienceVal}点经验/已连签{continueDays}天{tt}第{number}次签到成功!'
            # print(msg)
        else:
            msg = f'版块ID为{cat_id}{tt}签到状态:失败{tt}你的_key已失效或此版块可能已经不存在!'
        print(msg)
        time.sleep(2)  # 稍做延时,太快会异常。
    # 获取结果:累计连续签到天数及本次签到共获得多少经验点数。
    print(f"
签到结果:此账号已连续签到{continueDays}天,此次签到共成功获{experienceVal * number}点经验!继续加油哦!")
    input("签到已完成!请按回车键结束...")


# main函数
def main():
    os.system("mode con cols=75 lines=40")  # 设置打开控制台大小
    print("============================原创作者:佚名RJ==============================")
    print("============================工具使用及抓包教程============================")
    print("在葫芦侠3楼输入用户名和密码然后去打开抓包工具后再回到葫芦侠再点击登录,登录")
    print("成功后从抓包数据响应返回的用户信息中找_key字段输入到软件中即可!")
    print("==============================使用需特别注意==============================")
    print("===========手机端每次退出账号再重新登录后_key会失效发生变化哦!===========")
    # 签到
    signin()


# 主函数调用
if __name__ == '__main__':
    main()

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 共47条

请登录后发表评论