写了个批量检测 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 条回复
LennonChin
2021-10-19 11:26:26 +08:00
@monkeylmj 一楼先感谢你的脚本。
LennonChin
2021-10-19 11:36:18 +08:00
Apple Watch 简直太难等了,扫了三天,一直没有货源!!!
whxhjs
2021-10-19 11:41:45 +08:00
请问可以增加澳门地区的货源嘛
LennonChin
2021-10-19 11:49:21 +08:00
monkeylmj
2021-10-19 11:51:54 +08:00
eggt
2021-10-19 11:55:53 +08:00
为啥脚本都不能自动下单啊?是有技术难度还是有什么风险吗?
LennonChin
2021-10-19 11:57:15 +08:00
@eggt 你这问的挺有技术难度的......下单逻辑没研究过,不过起码得输银行卡账号密码吧......
LennonChin
2021-10-19 11:57:48 +08:00
@monkeylmj 哈哈哈哈
imdong
2021-10-19 12:12:46 +08:00
@eggt
@LennonChin 没难度,不用密码,我写了,自己用的,但我不会放出来,不想给别人当黄牛的机会。
eggt
2021-10-19 12:16:12 +08:00
@imdong 老哥是网页自动化还是接口自动化?
imdong
2021-10-19 12:24:18 +08:00
@eggt 油猴脚本,基于页面状态直接走接口后续请求。

但是最近苹果商店频道 404 非常不稳定,准备移植到 node 全部走接口。
yinshilun
2021-10-19 12:56:37 +08:00
请问有 watch 的配置文件么,一直想等个 watch 的到店取货…
MX123
2021-10-19 13:43:44 +08:00
没有 Apple watch 吗?
zhuang0718
2021-10-19 13:46:44 +08:00
同等一个 aw 的到店取货 一直刷不到 好难等
byuan04
2021-10-19 14:47:35 +08:00
不晓得能否支持下 [Server 酱] ,直接推送到微信?
https://sct.ftqq.com/forward
LennonChin
2021-10-19 15:42:31 +08:00
@MX123
@yinshilun
@zhuang0718 可以去官网找找编码,按格式更新到 products.json 文件里就可以了。
LennonChin
2021-10-19 15:43:54 +08:00
@byuan04 看了下这个集成挺简单的,但服务要收费啊,免费的一天只能发五条……
byuan04
2021-10-19 16:33:39 +08:00
@LennonChin 不是。。和你哪个给 key 一样,自己给自己推每天可以 5 条免费 (不是所有人一起五条
LennonChin
2021-10-19 16:48:25 +08:00
@byuan04 是啊,一个人一天 5 条,🌝🌝,我这写的每到整点就会发一条,方便检查应用是不是正常,5 条都不够发😂
muunala10221
2021-10-19 17:02:41 +08:00
安装上了 挺好的,能加个 m1 pro 的监测嘛

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

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

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

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

© 2021 V2EX