V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
unknown666
V2EX  ›  分享创造

用 Rust 写了个大麦网抢票脚本。

  •  
  •   unknown666 · 2023-05-27 22:00:38 +08:00 · 12509 次点击
    这是一个创建于 571 天前的主题,其中的信息可能已经有所发展或是发生改变。

    仓库地址: https://github.com/ClassmateLin/dm-ticket

    喜欢的话帮忙点个 star.

    GuangXiN
        1
    GuangXiN  
       2023-05-27 22:25:45 +08:00 via Android
    rust 程序也能算脚本?
    invalid
        2
    invalid  
       2023-05-27 22:47:59 +08:00
    好用吗,试试
    lhx2008
        3
    lhx2008  
       2023-05-27 22:54:54 +08:00
    看了下好复杂,还是 python 合适
    needpp
        4
    needpp  
       2023-05-27 23:13:41 +08:00
    其他条件相同的情况下,执行速度会比 nodejs 更快吗?
    unknown666
        5
    unknown666  
    OP
       2023-05-28 00:19:38 +08:00
    @lhx2008 本来用 Python 写的
    unknown666
        6
    unknown666  
    OP
       2023-05-28 00:22:48 +08:00
    @needpp
    Silently
        7
    Silently  
       2023-05-28 09:19:34 +08:00
    dm-ticket 镜像少预装了 curl 导致连不上 token
    unknown666
        8
    unknown666  
    OP
       2023-05-28 10:25:56 +08:00
    @Silently 不是 curl 的问题
    Silently
        9
    Silently  
       2023-05-28 10:31:17 +08:00
    @unknown666 我这边报错“thread 'tokio-runtime-worker' panicked at 'called `Result::unwrap()` on an `Err` value: error sending request for url ( http://token-server:8080/?key=bx_token): error trying to connect: tcp connect error: Connection refused (os error 111)”
    进容器安装 curl 后重启才恢复正常
    unknown666
        10
    unknown666  
    OP
       2023-05-28 10:32:18 +08:00
    @Silently 那是 token-server 还没有启动完成。等一会就行了。
    Silently
        11
    Silently  
       2023-05-28 10:34:46 +08:00
    @unknown666 抱歉 确实
    zerone0086
        12
    zerone0086  
       2023-05-28 15:00:03 +08:00


    你好 报这个错了
    zerone0086
        13
    zerone0086  
       2023-05-28 15:02:10 +08:00
    bearboss
        14
    bearboss  
       2023-05-28 15:42:52 +08:00
    大麦的 api 接口没有加密吗 参数都是明文的? a 有加密的话是如何解出来的呢
    seers
        15
    seers  
       2023-05-28 18:51:16 +08:00 via Android
    容易被盾
    unknown666
        16
    unknown666  
    OP
       2023-05-28 23:55:53 +08:00
    @bearboss 看源码
    unknown666
        17
    unknown666  
    OP
       2023-05-28 23:58:27 +08:00
    @zerone0086 图片看不到。请在 github 提交 issue
    jonty
        18
    jonty  
       2023-05-29 10:13:52 +08:00
    不懂就问,cookies 是需要全部复制上去吗?
    unknown666
        19
    unknown666  
    OP
       2023-05-29 10:37:15 +08:00
    @jonty 全部复制。请看 README 。
    jonty
        20
    jonty  
       2023-05-29 10:49:15 +08:00
    @unknown666 thread 'main' panicked at 'failure read file ./config/config.yaml', src/config.rs:34:59
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    jonty
        21
    jonty  
       2023-05-29 10:52:48 +08:00
    lawsiki
        22
    lawsiki  
       2023-05-29 10:58:55 +08:00
    貌似很多演唱会不开放 web 端下单的
    musi
        23
    musi  
       2023-05-29 11:11:22 +08:00
    爬虫主要还是网络吧,rust 发请求会比 python 发的快?
    unknown666
        24
    unknown666  
    OP
       2023-05-29 11:30:41 +08:00
    @lawsiki 张杰,周杰伦那些
    unknown666
        25
    unknown666  
    OP
       2023-05-29 11:33:23 +08:00
    @musi 抢购主要是网络的。排除网络和开发速度外,Rust 比 python 快, 占用内存低, 二进制包小巧。
    lrwlf
        26
    lrwlf  
       2023-05-29 16:39:46 +08:00
    @unknown666 在哪里看的源码呀,之前抓包研究,没搞明白加密逻辑..
    lrwlf
        27
    lrwlf  
       2023-05-29 16:43:01 +08:00
    @unknown666 PC H5 都不让买票了,原来移动端 H5 还可以。。
    deplivesb
        28
    deplivesb  
       2023-05-29 17:26:17 +08:00
    一直提示 生成订单失败, ["B-00203-200-100::网络开小差了,再试一次吧~"]
    确定 cookie 复制完整
    unknown666
        29
    unknown666  
    OP
       2023-05-29 22:14:58 +08:00
    @lrwlf 在网页, 需不需要报班
    unknown666
        30
    unknown666  
    OP
       2023-05-30 09:44:45 +08:00
    @deplivesb itemId 配置错误
    lrwlf
        31
    lrwlf  
       2023-05-30 11:12:41 +08:00
    @unknown666 不用了 hhhh
    mapperv
        32
    mapperv  
       2023-05-30 15:50:16 +08:00
    生成订单失败, ["RGV587_ERROR::SM::哎哟喂,被挤爆啦,请稍后重试!"]
    为什么 cookie 取全了也报错
    unknown666
        33
    unknown666  
    OP
       2023-05-30 21:12:41 +08:00
    @mapperv ip 问题。类似问题已经不知道回答了多少次了。有问题尽量先看 issue 。
    unknown666
        34
    unknown666  
    OP
       2023-05-31 00:35:07 +08:00
    @deplivesb 应该是配置的 ticket id 有问题。
    tgz2018
        35
    tgz2018  
       2023-05-31 20:27:27 +08:00
    [+] Running 1/1
    ✘ token-server Error 14.5s
    Error response from daemon: pull access denied for classmatelin/alitoken-server, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
    tgz2018
        36
    tgz2018  
       2023-05-31 21:01:19 +08:00
    解决了,非常感谢您
    vicky1124
        37
    vicky1124  
       2023-06-01 10:13:26 +08:00
    脚本还能用么
    glovebx
        38
    glovebx  
       2023-06-02 15:35:17 +08:00
    大佬能不能整个淘票票的抢票脚本
    lasuar
        39
    lasuar  
       2023-06-03 11:28:08 +08:00
    就为了个 star 啊,,用 rust 写脚本,完全是为了练习吧,star 都是虚的。真要 star ,你用 Rust 写个更有实力的项目比较容易得
    unknown666
        40
    unknown666  
    OP
       2023-06-03 14:42:12 +08:00
    @lasuar 比如?
    swim2sun
        41
    swim2sun  
       2023-06-04 22:14:34 +08:00 via iPhone
    开发这种要怎么分析 API 呢?有没有好用的工具,仅靠抓包人工分析感觉头大
    unknown666
        42
    unknown666  
    OP
       2023-06-04 22:45:49 +08:00
    @swim2sun 网页的东西用 chrome+charles 就够了。
    zhongjianrong
        43
    zhongjianrong  
       2023-06-05 15:03:02 +08:00
    大佬,现在是不是下掉了呀,拉取不到镜像了
    Garrix
        44
    Garrix  
       2023-06-05 15:09:42 +08:00
    大佬,看到仓库设置存档了,怎么回事?
    MurphyL0
        45
    MurphyL0  
       2023-06-05 15:51:42 +08:00
    alitoken-server 镜像没了
    byte10
        46
    byte10  
       2023-06-05 18:59:53 +08:00
    @needpp 额 还是脚本更方便一些吧。rust 比 nodejs 是快一点,cpu 执行时间 ndoejs 可能就是 1ms 和 rust-0.05ms ,也许是快了 20 倍,但是大头是 IO 时间。。。 也就是 101ms 和 100.05 ms ,其实没啥差别。
    EdwardWong
        47
    EdwardWong  
       2023-06-05 22:14:16 +08:00
    嘛,开源抢票软件的结果基本无非就两种:
    1. 自媒体 -> 小白 -> issue
    2. 贩子 -> Abuse -> 厂商改算法 + 风控
    需求高于供给的情况下总会有人抢不到票
    反正搞到最后受伤的总是开发者🥺
    needpp
        48
    needpp  
       2023-06-05 23:28:02 +08:00
    @byte10 感谢分享;再做进一步讨论; 有哪些方法可以缩减 io 时间; 比如 硬件层面: 升级 ssd ,提升宽带,软件层面:tcp 复用,http2 链接复用? 或者 请求中携带参数只需要返回 head 信息等? 总之,一切能够提升请求效率的方法都可以拿出来讨论讨论?
    loveDiu4ever
        49
    loveDiu4ever  
       2023-06-06 04:00:04 +08:00
    你写的啊,关注了,5k start 了,已经删库了
    Biluesgakki
        50
    Biluesgakki  
       2023-06-06 09:31:15 +08:00
    @unknown666 #29 有课吗哥 想学
    byte10
        51
    byte10  
       2023-06-06 09:31:30 +08:00
    @needpp 额,一般你找几个网络延迟低的机器,比如他们的 服务部署在阿里云,那你就买阿里云那边的机器。CPU 双核就够了,这点业务估计吃不完 50%。nodejs 本身就是用 NIO 的,开它 800-1000 个 http 链接,去抢就可以了。如果对方支持 http2 ,那你也可以用 http2 去抢(这样就几个 http2 连接即可),其他应该没啥可以提升了。
    Biluesgakki
        52
    Biluesgakki  
       2023-06-06 09:39:27 +08:00
    9 天后才看到 拍断腿了
    pkwenda
        53
    pkwenda  
       2023-06-06 10:31:22 +08:00
    楼主怎么归档了,不可抗力吗?
    chenpt0809
        54
    chenpt0809  
       2023-06-06 16:11:27 +08:00
    请问谁有最后一个版本的 docker 包,求一下。
    dark456852
        55
    dark456852  
       2023-06-07 17:33:11 +08:00
    求镜像包
    bully
        56
    bully  
       2023-06-07 17:36:07 +08:00
    请问谁有最后一个版本的 docker 包,求一下
    zh4710jj
        57
    zh4710jj  
       2023-06-08 09:10:29 +08:00
    @tgz2018 你好,请问你是怎么解决 alitoken-server 不存在的问题的呢?
    whenIambored
        58
    whenIambored  
       2023-06-13 11:58:36 +08:00
    alitoken-server 这个镜像好像被删了
    chenyuhuahi
        59
    chenyuhuahi  
       2023-06-13 15:50:53 +08:00
    电报群还在么大佬
    Ionian
        60
    Ionian  
       2023-07-09 19:48:30 +08:00
    镜像没了
    onbeam
        61
    onbeam  
       2023-07-14 16:01:48 +08:00
    大佬 ,rust 抢好像用不了现在是 dp 模式么?有 tg 群?谢谢
    2NUT
        62
    2NUT  
       2023-09-09 00:41:29 +08:00
    @lasuar 确实挺虚,都 7 千多 star 了;我决定加入
    unknown666
        64
    unknown666  
    OP
       291 天前
    poczm123
        66
    poczm123  
       164 天前
    大佬,有个爬虫程序想请你用 rust 帮写,怎么联系?
    unknown666
        67
    unknown666  
    OP
       153 天前
    @poczm123 aHR0cHM6Ly90Lm1lL2plcnJ5eTI1Nzc=
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1200 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:20 · PVG 07:20 · LAX 15:20 · JFK 18:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.