LennonChin
V2EX  ›  Apple

写了个批量检测 Apple Store 直营店货源的脚本,可发送钉钉通知

  •  1
     
  •   LennonChin · Oct 19, 2021 · 7305 views
    This topic created in 1840 days ago, the information mentioned may be changed or developed.

    之前看到 V 友 @monkeylmj 的帖子 iPhone13Pro 抢到了,这几天研究的抢货手段给大家一些经验 分享的监控脚本,因此在他的基础上做了改进,可监控多种产品,并且可以把通知发送到钉钉。

    GitHub 传送门:https://github.com/LennonChin/AppleStore-Monitor

    建议合理使用,不要设置扫描时间太短,以免 IP 被封。

    下面是 GitHub 的 README,直接贴过来了:

    概述

    本项目应用主要用来监测 Apple Store 线下直营店货源情况,主要使用 Python 实现。

    首先感谢iPhone-Pickup-Monitor项目带来的灵感,同时有些实现也直接使用了该项目的一些代码。

    本项目在 iPhone-Pickup-Monitor 原有功能的基础上去掉了声音通知,但添加了多货源同时监控以及钉钉消息通知功能。

    安装

    # 拉取代码 
    git clone https://github.com/LennonChin/AppleStore-Monitor.git
    
    # 进入目录
    cd AppleStore-Monitor
    
    # 安装依赖
    pip install -r requirements.txt
    

    申请钉钉群机器人

    [强烈建议配置] 如不配置则没有通知功能。

    本监控提供了钉钉监控的功能,可以在监控到有货源时将消息发送到钉钉群。如要启用该功能,首先需要创建一个钉钉群,并添加群机器人,详细可参考文档:

    自定义机器人接入

    机器人配置完毕后,记下相关的 Access Token 和 Secret Key,后面配置时需要用到。

    开始配置

    可以配置多个监控商品:

    $> python /User/LennonChin/Codes/AppleStore-Monitor/monitor.py config
    --------------------
    [0] AirPods
    [1] iPhone 13
    选择要监控的产品:0
    --------------------
    [0] AirPods
    [1] AirPods Max
    选择要监控的产品子类:1
    --------------------
    [0] AirPods Max - 银色
    选择要监控的产品型号:0
    --------------------
    是否添加更多产品[Enter 继续添加,非 Enter 键退出]:
    --------------------
    [0] AirPods
    [1] iPhone 13
    选择要监控的产品:1
    --------------------
    ...
    [3] iPhone 13 Pro Max
    选择要监控的产品子类:3
    --------------------
    ...
    [11] 512GB 远峰蓝色
    ...
    选择要监控的产品型号:11
    --------------------
    是否添加更多产品[Enter 继续添加,非 Enter 键退出]:n
    选择计划预约的地址:
    请稍后...1/3
    --------------------
    [0] 北京
    [1] 上海
    ...
    请选择序号:1
    请稍后...2/3
    请稍后...3/3
    --------------------
    [0] 黄浦区
    ...
    请选择序号:0
    正在加载网络资源...
    --------------------
    输入钉钉机器人 Access Token[如不配置直接回车即可]:# 此处如不配置,就没有通知功能
    输入钉钉机器人 Secret Key[如不配置直接回车即可]:# 此处如不配置,就没有通知功能
    --------------------
    输入扫描间隔时间[以秒为单位,默认为 15 秒,如不配置直接回车即可]:30 # 不建议太短,以免扫描过于频繁导致 IP 被封
    扫描配置已生成,并已写入到 apple_store_monitor_configs.json 文件中
    请使用 python /User/LennonChin/Codes/AppleStore-Monitor/monitor.py start 命令启动监控
    

    配置完成后,会在当前目录下生成一个apple_store_monitor_configs.json文件:

    {
      "selected_products": {
        "MGYJ3CH/A": [
          "AirPods Max",
          "AirPods Max - \u94f6\u8272"
        ],
        "MLHG3CH/A": [
          "iPhone 13 Pro Max",
          "512GB \u8fdc\u5cf0\u84dd\u8272"
        ]
      },
      "selected_area": "\u4e0a\u6d77 \u4e0a\u6d77 \u9ec4\u6d66\u533a",
      "dingtalk_configs": {
        "access_token": "",
        "secret_key": ""
      },
      "scan_interval": 30
    }
    

    如果你明白每项的意思,也可以手动填写该 JSON 文件,不过一定要按照上面例子中的层级,尤其是selected_products部分。

    另外欢迎各位补充本项目的products.json文件,添加更多产品信息。

    启动监控

    接下来只需要用下面的命令启动监控即可:

    比如前台启动:

    $> python /User/LennonChin/Codes/AppleStore-Monitor/monitor.py start
    

    或者后台启动:

    $> nohup python -u monitor.py start > monitor.log 2>&1 &
    

    通知效果

    4 种情况会通知:

    1. 启动时通知,以确认相关信息是否正确,启动是否成功。
    2. 扫描到有货源时会通知。
    3. 每天 6:00 ~ 23:00 整点报时,以确保程序还正常运行。
    4. 程序异常时会通知,如不是致命异常,不用理会。

    相关通知截图:

    NotificationExample.png

    Supplement 1  ·  Oct 19, 2021
    添加了 Telegram bot 消息推送。
    Supplement 2  ·  Oct 20, 2021
    今天顺利抢到啦!!!就是有点担心操作太快,身份证号不知道输对没有......好担心

    ![https://i1.100024.xyz/i/2021/10/20/iu9rnb.png]( https://i1.100024.xyz/i/2021/10/20/iu9rnb.png)
    ![https://i1.100024.xyz/i/2021/10/20/iua5ex.png]( https://i1.100024.xyz/i/2021/10/20/iua5ex.png)
    33 replies  •  2021-10-26 10:47:10 +08:00
    LennonChin
    LennonChin
    OP
    Oct 19, 2021
    1
    @monkeylmj 一楼先感谢你的脚本。
    LennonChin
    LennonChin
    OP
    Oct 19, 2021
    2
    Apple Watch 简直太难等了,扫了三天,一直没有货源!!!
    whxhjs
    whxhjs
    Oct 19, 2021
    3
    请问可以增加澳门地区的货源嘛
    monkeylmj
    monkeylmj
    Oct 19, 2021
    5
    eggt
    eggt
    Oct 19, 2021 via iPhone
    6
    为啥脚本都不能自动下单啊?是有技术难度还是有什么风险吗?
    LennonChin
    LennonChin
    OP
    Oct 19, 2021
    7
    @eggt 你这问的挺有技术难度的......下单逻辑没研究过,不过起码得输银行卡账号密码吧......
    LennonChin
    LennonChin
    OP
    Oct 19, 2021
    8
    @monkeylmj 哈哈哈哈
    imdong
    imdong
    Oct 19, 2021 via iPhone
    9
    @eggt
    @LennonChin 没难度,不用密码,我写了,自己用的,但我不会放出来,不想给别人当黄牛的机会。
    eggt
    eggt
    Oct 19, 2021 via iPhone
    10
    @imdong 老哥是网页自动化还是接口自动化?
    imdong
    imdong
    Oct 19, 2021 via iPhone
    11
    @eggt 油猴脚本,基于页面状态直接走接口后续请求。

    但是最近苹果商店频道 404 非常不稳定,准备移植到 node 全部走接口。
    yinshilun
    yinshilun
    Oct 19, 2021 via iPhone
    12
    请问有 watch 的配置文件么,一直想等个 watch 的到店取货…
    MX123
    MX123
    Oct 19, 2021
    13
    没有 Apple watch 吗?
    zhuang0718
    zhuang0718
    Oct 19, 2021
    14
    同等一个 aw 的到店取货 一直刷不到 好难等
    byuan04
    byuan04
    Oct 19, 2021
    15
    不晓得能否支持下 [Server 酱] ,直接推送到微信?
    https://sct.ftqq.com/forward
    LennonChin
    LennonChin
    OP
    Oct 19, 2021
    16
    @MX123
    @yinshilun
    @zhuang0718 可以去官网找找编码,按格式更新到 products.json 文件里就可以了。
    LennonChin
    LennonChin
    OP
    Oct 19, 2021
    17
    @byuan04 看了下这个集成挺简单的,但服务要收费啊,免费的一天只能发五条……
    byuan04
    byuan04
    Oct 19, 2021
    18
    @LennonChin 不是。。和你哪个给 key 一样,自己给自己推每天可以 5 条免费 (不是所有人一起五条
    LennonChin
    LennonChin
    OP
    Oct 19, 2021
    19
    @byuan04 是啊,一个人一天 5 条,🌝🌝,我这写的每到整点就会发一条,方便检查应用是不是正常,5 条都不够发😂
    muunala10221
    muunala10221
    Oct 19, 2021
    20
    安装上了 挺好的,能加个 m1 pro 的监测嘛
    byuan04
    byuan04
    Oct 19, 2021
    21
    @LennonChin 🌝也对 那来个间隔自定义?
    charliecaptain
    charliecaptain
    Oct 19, 2021 via Android
    22
    @imdong 你抢到了吗
    jfdnet
    jfdnet
    Oct 19, 2021
    23
    macbook pro 不至于需要抢购吧。
    ooops
    ooops
    Oct 19, 2021 via iPhone
    24
    跑个题:请稍候
    ronn
    ronn
    Oct 20, 2021
    25
    感谢感谢,试下能不能抢到,还有就是提个功能需求,能不能具体到某个店,本地只有一个店,选地区会监测好多其它地区的店
    LennonChin
    LennonChin
    OP
    Oct 20, 2021
    26
    @ronn 后面看看能不能加
    LennonChin
    LennonChin
    OP
    Oct 20, 2021
    27
    @ronn 排除功能已添加,现在可以在配置过程中排除你不想监测的店
    LennonChin
    LennonChin
    OP
    Oct 20, 2021
    28
    @yinshilun
    @MX123
    @zhuang0718 已经添加了部分 aw 的配置
    LennonChin
    LennonChin
    OP
    Oct 20, 2021
    29
    @muunala10221 这个目前还没有添加配置,后面有时间收集收集型号。
    另外看有万能的 V 友能不能搞到全型号,手动收集太麻烦了。。。
    zhuang0718
    zhuang0718
    Oct 20, 2021
    30
    @LennonChin #28 感谢老哥!!
    yinshilun
    yinshilun
    Oct 21, 2021 via iPhone
    31
    @LennonChin 看到啦!谢谢!!!
    rootsir
    rootsir
    Oct 23, 2021 via iPhone
    32
    扫到了 Apple watch 已下单 感谢
    LennonChin
    LennonChin
    OP
    Oct 26, 2021
    33
    @rootsir 哈哈,恭喜,我之前也是用这个扫到的,用处还是有
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5468 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 84ms · UTC 02:46 · PVG 10:46 · LAX 18:46 · JFK 21:46
    ♥ Do have faith in what you're doing.