吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2661|回复: 18
收起左侧

[Java 原创] java全民K歌每日领取鲜花脚本

 关闭 [复制链接]
zhuoxin99 发表于 2022-11-12 15:31
小白一枚,最近老妈迷恋上全民k歌,每天手动获取鲜花太麻烦,抓包写了领取鲜花的java脚本,大佬勿喷,感谢!


ck在网页版全民k歌获取:https://kg.qq.com/
uid也在ck里面


[Java] 纯文本查看 复制代码
package com.xxl.job.executor.service;


import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.io.IOException;


public class QuanMinKg {
    public static void main(String[] args) throws IOException {
        String ck = "";
        String t_uUid = "";
        String Url_a = "https://node.kg.qq.com/webapp/proxy?ns=proto_profile&cmd=profile.getProfile&mapExt=JTdCJTIyZmlsZSUyMiUzQSUyMnByb2ZpbGVfd2ViYXBwSmNlJTIyJTJDJTIyY21kTmFtZSUyMiUzQSUyMlByb2ZpbGVHZXQlMjIlMkMlMjJhcHBpZCUyMiUzQTEwMDA2MjYlMkMlMjJkY2FwaSUyMiUzQSU3QiUyMmludGVyZmFjZUlkJTIyJTNBMjA1MzU5NTk3JTdEJTJDJTIybDVhcGklMjIlM0ElN0IlMjJtb2RpZCUyMiUzQTI5NDAxNyUyQyUyMmNtZCUyMiUzQTI2MjE0NCU3RCUyQyUyMmlwJTIyJTNBJTIyMTAwLjExMy4xNjIuMTc4JTIyJTJDJTIycG9ydCUyMiUzQSUyMjEyNDA2JTIyJTdE&t_uUid=" + t_uUid;
        String Url_b = "https://node.kg.qq.com/webapp/proxy?ns=KG_TASK&cmd=task.getLottery&ns_inbuf=&mapExt=JTdCJTIyZmlsZSUyMiUzQSUyMnRhc2tKY2UlMjIlMkMlMjJjbWROYW1lJTIyJTNBJTIyTG90dGVyeVJlcSUyMiUyQyUyMnduc0NvbmZpZyUyMiUzQSU3QiUyMmFwcGlkJTIyJTNBMTAwMDU1NyU3RCUyQyUyMmw1YXBpJTIyJTNBJTdCJTIybW9kaWQlMjIlM0E1MDM5MzclMkMlMjJjbWQlMjIlM0E1ODk4MjQlN0QlN0Q%3D&t_uid=" + t_uUid + "&t_iShowEntry=1&t_type=";
        String t_type[] = {"1", "2"};
        String Url_e = "https://node.kg.qq.com/webapp/proxy?ns=KG_TASK&cmd=task.getLottery&mapExt=JTdCJTIyZmlsZSUyMiUzQSUyMnRhc2tKY2UlMjIlMkMlMjJjbWROYW1lJTIyJTNBJTIyTG90dGVyeVJlcSUyMiUyQyUyMmw1YXBpJTIyJTNBJTdCJTIybW9kaWQlMjIlM0E1MDM5MzclMkMlMjJjbWQlMjIlM0E1ODk4MjQlN0QlMkMlMjJsNWFwaV9leHAxJTIyJTNBJTdCJTIybW9kaWQlMjIlM0E4MTcwODklMkMlMjJjbWQlMjIlM0EzODAxMDg4JTdEJTdE&t_uid=" + t_uUid + "&t_type=103";

        String Url_c = "https://node.kg.qq.com/webapp/proxy?ns=KG_TASK&cmd=task.signinGetAward&mapExt=JTdCJTIyZmlsZSUyMiUzQSUyMnRhc2tKY2UlMjIlMkMlMjJjbWROYW1lJTIyJTNBJTIyR2V0U2lnbkluQXdhcmRSZXElMjIlMkMlMjJ3bnNDb25maWclMjIlM0ElN0IlMjJhcHBpZCUyMiUzQTEwMDA2MjYlN0QlMkMlMjJsNWFwaSUyMiUzQSU3QiUyMm1vZGlkJTIyJTNBNTAzOTM3JTJDJTIyY21kJTIyJTNBNTg5ODI0JTdEJTdE&t_uid=" + t_uUid + "&t_iShowEntry=";
        String t_iShowEntry[] = {"1", "2", "4", "16", "128", "512"};
        String Url_1 = "https://node.kg.qq.com/webapp/proxy?ns=proto_music_station&cmd=message.batch_get_music_cards&mapExt=JTdCJTIyY21kTmFtZSUyMiUzQSUyMkdldEJhdGNoTXVzaWNDYXJkc1JlcSUyMiUyQyUyMmZpbGUlMjIlM0ElMjJwcm90b19tdXNpY19zdGF0aW9uSmNlJTIyJTJDJTIyd25zRGlzcGF0Y2hlciUyMiUzQXRydWUlN0Q&t_uUid=" + t_uUid + "&g_tk_openkey=";

        String Url_d = "https://node.kg.qq.com/webapp/proxy?ns=KG_TASK&cmd=task.getLottery&mapExt=JTdCJTIyZmlsZSUyMiUzQSUyMnRhc2tKY2UlMjIlMkMlMjJjbWROYW1lJTIyJTNBJTIyTG90dGVyeVJlcSUyMiUyQyUyMnduc0NvbmZpZyUyMiUzQSU3QiUyMmFwcGlkJTIyJTNBMTAwMDU1NyU3RCUyQyUyMmw1YXBpJTIyJTNBJTdCJTIybW9kaWQlMjIlM0E1MDM5MzclMkMlMjJjbWQlMjIlM0E1ODk4MjQlN0QlN0Q&t_uid=" + t_uUid + "&t_iShowEntry=4&t_type=104";
        String Url_2 = "https://node.kg.qq.com/webapp/proxy?t_stReward%3Aobject=%7B%22uInteractiveType%22%3A1%2C%22uRewardType%22%3A0%2C%22uFlowerNum%22%3A15%7D&ns=proto_music_station&cmd=message.get_reward&mapExt=JTdCJTIyY21kTmFtZSUyMiUzQSUyMkdldFJld2FyZFJlcSUyMiUyQyUyMmZpbGUlMjIlM0ElMjJwcm90b19tdXNpY19zdGF0aW9uSmNlJTIyJTJDJTIyd25zRGlzcGF0Y2hlciUyMiUzQXRydWUlN0Q&t_uUid=" + t_uUid + "&t_strUgcId=";
        String Url_3 = "https://node.kg.qq.com/webapp/proxy?t_stReward%3Aobject=%7B%22uInteractiveType%22%3A0%2C%22uRewardType%22%3A0%2C%22uFlowerNum%22%3A10%7D&ns=proto_music_station&cmd=message.get_reward&mapExt=JTdCJTIyY21kTmFtZSUyMiUzQSUyMkdldFJld2FyZFJlcSUyMiUyQyUyMmZpbGUlMjIlM0ElMjJwcm90b19tdXNpY19zdGF0aW9uSmNlJTIyJTJDJTIyd25zRGlzcGF0Y2hlciUyMiUzQXRydWUlN0Q&t_uUid=" + t_uUid + "&t_strUgcId=";
        //获取信息
        JSONObject jsonObject = httpQuery(Url_a, ck);

        Integer num_a = jsonObject.getJSONObject("data").getJSONObject("profile.getProfile").getInteger("uFlowerNum");
        String uname = jsonObject.getJSONObject("data").getJSONObject("profile.getProfile").getJSONObject("stPersonInfo").getString("sKgNick");


        for (int a = 0; a < t_iShowEntry.length; a++) {
            httpQuery(Url_c + t_iShowEntry[a], ck);
        }
        for (int b = 0; b < t_type.length; b++) {
            httpQuery(Url_b + t_type[b], ck);
        }
        for (int c = 1; c <= 15; c++) {
            JSONObject jsonObject2 = httpQuery(Url_1 + c, ck);
            JSONArray vctMusicCards = jsonObject2.getJSONObject("data").getJSONObject("message.batch_get_music_cards").getJSONArray("vctMusicCards");
            for (int i = 0; i < vctMusicCards.size(); i++) {
                String strKey = vctMusicCards.getJSONObject(i).getString("strKey");
                String strUgcId = vctMusicCards.getJSONObject(i).getString("strUgcId");
                Integer bigInteger = vctMusicCards.getJSONObject(i).getJSONObject("stReward").getInteger("uFlowerNum");
                String Url = strUgcId + "&t_strKey=" + strKey;
                if (bigInteger > 10) {
                    httpQuery(Url_2 + Url, ck);
                }
                if (bigInteger > 1) {
                    httpQuery(Url_3 + Url, ck);
                }
            }
        }
        httpQuery(Url_d, ck);
        httpQuery(Url_e, ck);
        JSONObject jsonObject3 = httpQuery(Url_a, ck);

        Integer num_b = jsonObject3.getJSONObject("data").getJSONObject("profile.getProfile").getInteger("uFlowerNum");
        Integer num_c = num_b - num_a;
        String tx = null;
        if (num_c == 0) {
            tx = "当前账户名 : " + uname + " 您今日已经领取过鲜花,当前账户鲜花数量为 " + num_b;
        } else {
            tx = "当前账户名 : " + uname + " 成功领取过鲜花,领取鲜花数量为 " + num_c + " 当前账户鲜花数量为 " + num_b;
        }
        System.out.println(tx);
    }

    private static JSONObject httpQuery(String url, String ck) throws IOException {
        // ============================= 【HttpClient】 ====================================
        // 创建httpclient实例
        CloseableHttpClient httpclient = HttpClients.createDefault();
        CloseableHttpResponse response = null;
        String content = null;
        try {

            // 创建httpget实例
            HttpGet httpget = new HttpGet(url);

            // 模拟浏览器
            httpget.setHeader("User-Agent",
                    "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0");
            httpget.setHeader("Cookie", ck);
            // 使用代{过}{滤}理 IP
            //HttpHost proxy = new HttpHost("118.114.77.47", 8080);
            RequestConfig config = RequestConfig.custom()
                    //设置连接超时
                    .setConnectTimeout(10000) // 设置连接超时时间 10秒钟
                    .setSocketTimeout(10000) // 设置读取超时时间10秒钟
                    .build();

            httpget.setConfig(config);

            // 执行get请求
            response = httpclient.execute(httpget);
            org.apache.http.HttpEntity entity = response.getEntity();
            // 获取返回实体
            content = EntityUtils.toString(entity, "utf-8");
            return JSONObject.parseObject(content);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            response.close(); // response关闭
            httpclient.close(); // httpClient关闭
        }
        return JSONObject.parseObject(content);
    }
}

执行截图

执行截图

免费评分

参与人数 2吾爱币 +8 热心值 +2 收起 理由
gofaster + 1 + 1 我很赞同!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

二十瞬 发表于 2023-4-1 16:24
本帖最后由 二十瞬 于 2023-4-1 16:56 编辑

首先谢谢楼主,然后我把代码转成了Python,方便结合一些工具自动执行。
顺便改成了 支持多账号,我已经测试能运行。  现在只需要填写 cks数组,不需要uid。
例如 cks=["ck1","ck2"]. 希望往前面顶一顶,大家能看到


import requests

import os
import sys

baseUrl = "https://node.kg.qq.com"
os.environ['NO_PROXY'] = baseUrl

cks = [
    ""
]

def httpQuery(url, ck):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0',
        'Cookie': ck
    }
    try:
        response = requests.get(url, headers=headers, timeout=10)
        response.raise_for_status()
    except requests.exceptions.RequestException as e:
        raise SystemExit(e)
    else:
        # print(f"请求返回结果:{response.text}")
        return response.json()

def get_uid_from_cookie(cookie):
    cookies = cookie.split("; ")
    for c in cookies:
        parts = c.split("=")
        if parts[0] == "uid":
            return parts[1]
    return None

def go(ck):
    t_uUid = get_uid_from_cookie(ck);
    Url_a = baseUrl + "/webapp/proxy?ns=proto_profile&cmd=profile.getProfile&mapExt=JTdCJTIyZmlsZSUyMiUzQSUyMnByb2ZpbGVfd2ViYXBwSmNlJTIyJTJDJTIyY21kTmFtZSUyMiUzQSUyMlByb2ZpbGVHZXQlMjIlMkMlMjJhcHBpZCUyMiUzQTEwMDA2MjYlMkMlMjJkY2FwaSUyMiUzQSU3QiUyMmludGVyZmFjZUlkJTIyJTNBMjA1MzU5NTk3JTdEJTJDJTIybDVhcGklMjIlM0ElN0IlMjJtb2RpZCUyMiUzQTI5NDAxNyUyQyUyMmNtZCUyMiUzQTI2MjE0NCU3RCUyQyUyMmlwJTIyJTNBJTIyMTAwLjExMy4xNjIuMTc4JTIyJTJDJTIycG9ydCUyMiUzQSUyMjEyNDA2JTIyJTdE&t_uUid=" + t_uUid
    Url_b = baseUrl + "/webapp/proxy?ns=KG_TASK&cmd=task.getLottery&ns_inbuf=&mapExt=JTdCJTIyZmlsZSUyMiUzQSUyMnRhc2tKY2UlMjIlMkMlMjJjbWROYW1lJTIyJTNBJTIyTG90dGVyeVJlcSUyMiUyQyUyMnduc0NvbmZpZyUyMiUzQSU3QiUyMmFwcGlkJTIyJTNBMTAwMDU1NyU3RCUyQyUyMmw1YXBpJTIyJTNBJTdCJTIybW9kaWQlMjIlM0E1MDM5MzclMkMlMjJjbWQlMjIlM0E1ODk4MjQlN0QlN0Q%3D&t_uid=" + t_uUid + "&t_iShowEntry=1&t_type="
    t_type = ["1", "2"]
    Url_e = baseUrl + "/webapp/proxy?ns=KG_TASK&cmd=task.getLottery&mapExt=JTdCJTIyZmlsZSUyMiUzQSUyMnRhc2tKY2UlMjIlMkMlMjJjbWROYW1lJTIyJTNBJTIyTG90dGVyeVJlcSUyMiUyQyUyMmw1YXBpJTIyJTNBJTdCJTIybW9kaWQlMjIlM0E1MDM5MzclMkMlMjJjbWQlMjIlM0E1ODk4MjQlN0QlMkMlMjJsNWFwaV9leHAxJTIyJTNBJTdCJTIybW9kaWQlMjIlM0E4MTcwODklMkMlMjJjbWQlMjIlM0EzODAxMDg4JTdEJTdE&t_uid=" + t_uUid + "&t_type=103"
    Url_c = baseUrl + "/webapp/proxy?ns=KG_TASK&cmd=task.signinGetAward&mapExt=JTdCJTIyZmlsZSUyMiUzQSUyMnRhc2tKY2UlMjIlMkMlMjJjbWROYW1lJTIyJTNBJTIyR2V0U2lnbkluQXdhcmRSZXElMjIlMkMlMjJ3bnNDb25maWclMjIlM0ElN0IlMjJhcHBpZCUyMiUzQTEwMDA2MjYlN0QlMkMlMjJsNWFwaSUyMiUzQSU3QiUyMm1vZGlkJTIyJTNBNTAzOTM3JTJDJTIyY21kJTIyJTNBNTg5ODI0JTdEJTdE&t_uid=" + t_uUid + "&t_iShowEntry="
    t_iShowEntry = ["1", "2", "4", "16", "128", "512"]
    Url_1 = baseUrl + "/webapp/proxy?ns=proto_music_station&cmd=message.batch_get_music_cards&mapExt=JTdCJTIyY21kTmFtZSUyMiUzQSUyMkdldEJhdGNoTXVzaWNDYXJkc1JlcSUyMiUyQyUyMmZpbGUlMjIlM0ElMjJwcm90b19tdXNpY19zdGF0aW9uSmNlJTIyJTJDJTIyd25zRGlzcGF0Y2hlciUyMiUzQXRydWUlN0Q&t_uUid=" + t_uUid + "&g_tk_openkey="
    Url_d = baseUrl + "/webapp/proxy?ns=KG_TASK&cmd=task.getLottery&mapExt=JTdCJTIyZmlsZSUyMiUzQSUyMnRhc2tKY2UlMjIlMkMlMjJjbWROYW1lJTIyJTNBJTIyTG90dGVyeVJlcSUyMiUyQyUyMnduc0NvbmZpZyUyMiUzQSU3QiUyMmFwcGlkJTIyJTNBMTAwMDU1NyU3RCUyQyUyMmw1YXBpJTIyJTNBJTdCJTIybW9kaWQlMjIlM0E1MDM5MzclMkMlMjJjbWQlMjIlM0E1ODk4MjQlN0QlN0Q&t_uid=" + t_uUid + "&t_iShowEntry=4&t_type=104"
    Url_2 = baseUrl + "/webapp/proxy?t_stReward%3Aobject=%7B%22uInteractiveType%22%3A1%2C%22uRewardType%22%3A0%2C%22uFlowerNum%22%3A15%7D&ns=proto_music_station&cmd=message.get_reward&mapExt=JTdCJTIyY21kTmFtZSUyMiUzQSUyMkdldFJld2FyZFJlcSUyMiUyQyUyMmZpbGUlMjIlM0ElMjJwcm90b19tdXNpY19zdGF0aW9uSmNlJTIyJTJDJTIyd25zRGlzcGF0Y2hlciUyMiUzQXRydWUlN0Q&t_uUid=" + t_uUid + "&t_strUgcId="
    Url_3 = baseUrl + "/webapp/proxy?t_stReward%3Aobject=%7B%22uInteractiveType%22%3A0%2C%22uRewardType%22%3A0%2C%22uFlowerNum%22%3A10%7D&ns=proto_music_station&cmd=message.get_reward&mapExt=JTdCJTIyY21kTmFtZSUyMiUzQSUyMkdldFJld2FyZFJlcSUyMiUyQyUyMmZpbGUlMjIlM0ElMjJwcm90b19tdXNpY19zdGF0aW9uSmNlJTIyJTJDJTIyd25zRGlzcGF0Y2hlciUyMiUzQXRydWUlN0Q&t_uUid=" + t_uUid + "&t_strUgcId="

    # 获取信息
    jsonObject = httpQuery(Url_a, ck)
    num_a = jsonObject["data"]["profile.getProfile"]["uFlowerNum"]
    uname = jsonObject["data"]["profile.getProfile"]["stPersonInfo"]["sKgNick"]

    for a in range(len(t_iShowEntry)):
        httpQuery(Url_c + t_iShowEntry[a], ck)

    for b in range(len(t_type)):
        httpQuery(Url_b + t_type[b], ck)

    for c in range(1, 16):
        jsonObject2 = httpQuery(Url_1 + str(c), ck)
        vctMusicCards = jsonObject2["data"]["message.batch_get_music_cards"]["vctMusicCards"]
        for i in range(len(vctMusicCards)):
            strKey = vctMusicCards[i]["strKey"]
            strUgcId = vctMusicCards[i]["strUgcId"]
            bigInteger = vctMusicCards[i]["stReward"]["uFlowerNum"]
            Url = strUgcId + "&t_strKey=" + strKey
            if bigInteger > 10:
                httpQuery(Url_2 + Url, ck)
            if bigInteger > 1:
                httpQuery(Url_3 + Url, ck)

    httpQuery(Url_d, ck)
    httpQuery(Url_e, ck)
    jsonObject3 = httpQuery(Url_a, ck)
    num_b = jsonObject3["data"]["profile.getProfile"]["uFlowerNum"]
    num_c = num_b - num_a
    if num_c == 0:
        tx = "账户: " + uname + " 今日已经领取过鲜花,当前账户鲜花数为 " + str(num_b)
    else:
        tx = "账户: " + uname + "成功领取过鲜花,领取鲜花数为 " + str(num_c) + " 当前鲜花数为 " + str(
            num_b)
    print(tx)

if __name__ == '__main__':
    i = 0
    for ck in cks:
        i = i + 1
        print(f"ck{i}开始领取鲜花")
        go(ck)
        print(f"ck{i}领取鲜花结束")
    sys.exit()

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
zhuoxin99 + 1 + 1 用心讨论,共获提升!

查看全部评分

 楼主| zhuoxin99 发表于 2023-1-9 16:58
∫護着妳佉遠方 发表于 2023-1-9 16:49
看的教程都是HttpClient库,没有Python简洁

RestTemplate 是从 Spring3.0 开始支持的一个 HTTP 请求工具,它提供了常见的REST请求方案的模版,例如 GET 请求、POST 请求、PUT 请求、DELETE 请求以及一些通用的请求执行方法 exchange 以及 execute。RestTemplate 继承自 InterceptingHttpAccessor 并且实现了 RestOperations 接口,其中 RestOperations 接口定义了基本的 RESTful 操作,这些操作在 RestTemplate 中都得到了实现。接下来我们就来看看这些操作方法的使用。

现在一样简单了。。。越来越智能化。。写代码只用轮子
wzx11 发表于 2022-11-13 09:50
 楼主| zhuoxin99 发表于 2022-11-13 17:11
wzx11 发表于 2022-11-13 09:50
咋用?创建html吗,?

这是个main方法..复制进去就可以用
libaogui2022 发表于 2022-11-14 21:32
感谢分享
印象7727 发表于 2022-11-14 21:59
感谢分享
Skipper.... 发表于 2022-11-15 07:14
感谢分享!
xzt35910 发表于 2023-1-5 20:57
很好的一个软件,怎么用没写清楚,很无奈啊不会用,但是还是要支持你一下
最好搞一个刷收听率的出来
 楼主| zhuoxin99 发表于 2023-1-6 09:08
xzt35910 发表于 2023-1-5 20:57
很好的一个软件,怎么用没写清楚,很无奈啊不会用,但是还是要支持你一下
最好搞一个刷收听率的出来{:1_91 ...

java脚本
这就是个main方法 新建一个类,然后把这个复制进去就可以了
∫護着妳佉遠方 发表于 2023-1-7 15:53
Java写爬虫类的东西还是太麻烦了,学习一段时间后放弃了,选择了Python,Java创建一个http请求有点繁琐,没有Python简洁,解析也比较麻烦,就是多线程使用起来有点舒服,比较熟悉
 楼主| zhuoxin99 发表于 2023-1-9 14:23
∫護着妳佉遠方 发表于 2023-1-7 15:53
Java写爬虫类的东西还是太麻烦了,学习一段时间后放弃了,选择了Python,Java创建一个http请求有点繁琐,没 ...

java8 提供了RestTempLate工具类 可以执行post,get请求
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-6-4 23:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表