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

2021-10-19 11:23:45 +08:00
 LennonChin

之前看到 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. 程序异常时会通知,如不是致命异常,不用理会。

相关通知截图:

5082 次点击
所在节点    Apple
33 条回复
byuan04
2021-10-19 17:11:12 +08:00
@LennonChin 🌝也对 那来个间隔自定义?
charliecaptain
2021-10-19 17:23:53 +08:00
@imdong 你抢到了吗
jfdnet
2021-10-19 18:27:02 +08:00
macbook pro 不至于需要抢购吧。
ooops
2021-10-19 19:22:06 +08:00
跑个题:请稍候
ronn
2021-10-20 09:26:05 +08:00
感谢感谢,试下能不能抢到,还有就是提个功能需求,能不能具体到某个店,本地只有一个店,选地区会监测好多其它地区的店
LennonChin
2021-10-20 11:41:28 +08:00
@ronn 后面看看能不能加
LennonChin
2021-10-20 18:36:21 +08:00
@ronn 排除功能已添加,现在可以在配置过程中排除你不想监测的店
LennonChin
2021-10-20 18:37:05 +08:00
@yinshilun
@MX123
@zhuang0718 已经添加了部分 aw 的配置
LennonChin
2021-10-20 18:38:04 +08:00
@muunala10221 这个目前还没有添加配置,后面有时间收集收集型号。
另外看有万能的 V 友能不能搞到全型号,手动收集太麻烦了。。。
zhuang0718
2021-10-20 22:01:19 +08:00
@LennonChin #28 感谢老哥!!
yinshilun
2021-10-21 00:38:42 +08:00
@LennonChin 看到啦!谢谢!!!
rootsir
2021-10-23 15:10:33 +08:00
扫到了 Apple watch 已下单 感谢
LennonChin
2021-10-26 10:47:10 +08:00
@rootsir 哈哈,恭喜,我之前也是用这个扫到的,用处还是有

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/808806

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX