首页 > 编程语言 >羊了个羊小程序通关脚本

羊了个羊小程序通关脚本

时间:2022-09-19 15:48:53浏览次数:64  
标签:脚本 struct 程序 number Limit func channel 通关

package main

/**
 * 羊了个羊小程序通关脚本
 * 
 * max := 10000        // 通关次数
 * concurrency = 20    // 控制并发量
 * param.Set("t", "")  // 登录token-自行抓包获取(必须设置)
 * 
 * @author thinklxr
 */
import (
    "fmt"
    "io/ioutil"
    "net/http"
    "net/url"
    "sync"
    "time"
)

type Limit struct {
    number  int
    channel chan struct{}
}

// Limit struct 初始化
func New(number int) *Limit {
    return &Limit{
        number:  number,
        channel: make(chan struct{}, number),
    }
}

// Run 方法:创建有限的 go f 函数的 goroutine
func (limit *Limit) Run(f func()) {
    limit.channel <- struct{}{}
    go func() {
        f()
        <-limit.channel
    }()
}

// WaitGroup 对象内部有一个计数器,从0开始
// 有三个方法:Add(), Done(), Wait() 用来控制计数器的数量
var wg = sync.WaitGroup{}

const (
    concurrency = 20 // 控制并发量
)

func main() {
    start := time.Now()
    limit := New(concurrency) // New Limit 控制并发量
    // 接口请求URL
    apiUrl := "https://cat-match.easygame2021.com/sheep/v1/game/game_over"
    max := 50000 // 通关次数

    // 初始化参数
    param := url.Values{}
    param.Set("rank_score", "1")
    param.Set("rank_state", "1")
    param.Set("rank_time", "888")
    param.Set("rank_role", "1")
    param.Set("skin", "1")
    param.Set("t", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTQ1OTQxNzIsIm5iZiI6MTY2MzQ5MTk3MiwiaWF0IjoxNjYzNDkwMTcyLCJqdGkiOiJDTTpjYXRfbWF0Y2g6bHQxMjM0NTYiLCJvcGVuX2lkIjoiIiwidWlkIjo5NjgzMjMzMSwiZGVidWciOiIiLCJsYW5nIjoiIn0.XpajPZ-_9lTC-yYLpVQYi1rXz_9sgy5WYUEJQi3Q07k")

    for i := 0; i < max; i++ {
        wg.Add(1)
        value := i
        goFunc := func() {
            fmt.Printf("start func: %d\n", value)
            data, err := Get(apiUrl, param)
            if err != nil {
                fmt.Println(err)
                return
            }
            // 其它逻辑代码...
            fmt.Println(string(data))
            wg.Done()
        }
        limit.Run(goFunc)
    }

    // 阻塞代码防止退出
    wg.Wait()

    fmt.Printf("耗时: %fs", time.Now().Sub(start).Seconds())
}

// Get 方式发起网络请求
func Get(apiURL string, params url.Values) (rs []byte, err error) {
    var Url *url.URL
    Url, err = url.Parse(apiURL)
    if err != nil {
        fmt.Printf("解析url错误:\r\n%v", err)
        return nil, err
    }
    //如果参数中有中文参数,这个方法会进行URLEncode
    Url.RawQuery = params.Encode()
    resp, err := http.Get(Url.String())
    if err != nil {
        fmt.Println("err:", err)
        return nil, err
    }
    defer resp.Body.Close()
    return ioutil.ReadAll(resp.Body)
}

 

标签:脚本,struct,程序,number,Limit,func,channel,通关
From: https://www.cnblogs.com/lixiuran/p/16707861.html

相关文章

  • rust计算程序运行时间
    main.rsusestd::thread::sleep;usestd::time::{Duration,Instant};fnmain(){letnow=Instant::now();//程序起始时间println!("{:?}",now);......
  • 成为优秀程序员的 8 种简单方法
    成为优秀程序员的8种简单方法这篇文章适合任何想成为一名优秀程序员的人,适合那些看到别人变得更好或得到提升的人,适合那些正在开始学习之路的人,以及其他所有人。Photo......
  • 源码安装apache脚本部署
    源码安装apache脚本部署[root@localhost~]#lsanaconda-ks.cfghttpd.tar.xz[root@localhost~]#tarxfhttpd.tar.xz解压存放脚本的压缩包[root@localhost~]#l......
  • 微信小程序防止事件穿透防止事件冒泡
    绑定并阻止事件冒泡除bind外,也可以用catch来绑定事件。与bind不同,catch会阻止事件向上冒泡。例如在下边这个例子中,点击innerview会先后调用handleTap3和handl......
  • 2022-09-19 微信小程序关了调试没数据
    问题描述:打开调试,真机测试和开发工具测试都有值,关闭调试有部分值没有返回。原因:有个域名没有在微信公众平台配置。解决方案:打开微信公众平台==》开发设置==》服务器域名,......
  • C# 为exe程序添加自签名证书
    1.使用管理员打开PowerShell2.输入命令New-SelfSignedCertificate-TypeCustom-Subject"CN=发行者,O=公司名称,C=CN,L=省,S=市"-KeyUsageDigitalSignature-Fr......
  • 使用脚本修改hosts文件(bat+python)
    使用脚本修改hosts文件(bat+python)一、使用bat脚本方式  使用bat修改hosts文件,首先判断默认路径是否存在,如不存在,手工输入目标文件地址(一般用不着):SEThosts=C:\Windows......
  • centos 查看程序文件数量_centos 7.x 文件数量限制优化
    https://blog.csdn.net/weixin_42342010/article/details/111951283?utm_medium=distribute.wap_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_......
  • Electron学习(四)之应用程序打包
    如何将应用程序打包(Win)1、关于package.js文件详解完整实例如下:"build":{"productName":"xxxx",//项目名这也是生成的exe文件的前缀名"appId":"com.leon.x......
  • 2022-2023-1 20221312 《计算机基础与程序设计》第三周学习总结
    班级链接:首页-2022-2023-1-计算机基础与程序设计-北京电子科技学院-班级博客-博客园(cnblogs.com)作业要求:2022-2023-1《计算机基础与程序设计》教学进程-娄......