这是一个强大的商品库存和价格监控脚本教程。它使用 Python 和 Selenium 模拟真实浏览器访问网页以对抗反爬虫机制,通过 Telegram 发送实时通知,并最终部署为一个可在Linux服务器上7x24小时无人值守运行的系统服务。比如可以用来监控独角数卡、异次元发卡等各种发卡程序,或者是你想要监控的其他一些不太严格的商品链接。
- 一台Linux服务器: Ubuntu、debian等服务器都行。ipv4还是ipv6都可以,要是你监控的网站不支持ipv6你可以可以套一个cf的免费v4出口。
- 一个Telegram账号:用于接收库存和价格变动通知。
- 基础的SSH工具:如 Termius, Xshell, PuTTY 或系统自带的终端,用于连接你的服务器。
连接上你的服务器后,依次执行以下命令来安装所有必需的软件和依赖。
这是一个好习惯,可以确保你安装的软件都是最新的。
sudo apt update
sudo apt upgrade -y系统通常自带Python,但我们确保 pip(Python的包管理器)也已安装。
sudo apt install python3 python3-pip -y我们的脚本需要驱动一个真实的浏览器,所以必须在服务器上安装它。
# 下载Chrome的官方安装包
wget [https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb](https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb)
# 安装Chrome,apt会自动处理所有依赖
sudo apt install ./google-chrome-stable_current_amd64.deb -y安装 selenium(浏览器“遥控器”)和 undetected-chromedriver(能避免被网站检测到的“智能钥匙”)。
pip3 install selenium undetected-chromedriver你需要一个机器人来给你发消息。
- 在Telegram里搜索
BotFather并开始对话。 - 发送
/newbot命令。 - 按照提示,为你的机器人设置一个名称 (Name),例如
我的库存监控助手。 - 再设置一个用户名 (Username),它必须以
bot结尾,例如my_stock_monitor_bot。 - 创建成功后,
BotFather会给你一长串 Token。请务必复制并保存好这个Token。 - 接着,在Telegram里搜索并找到你的机器人,给它发送一条任意消息(比如
/start)。 - 获取你的 Chat ID:在浏览器中访问以下链接(把
你的Token换成你刚刚获取到的Token):https://api.telegram.org/bot你的Token/getUpdates在返回的页面中,找到"chat":{"id":一串数字},这串数字就是你的 Chat ID。
现在,我们来创建并配置核心的监控脚本。
mkdir ~/stock_monitor
cd ~/stock_monitor使用 nano 编辑器创建一个新的Python文件。
nano stock_monitor.py请将本仓库中的 stock_monitor.py 文件内的完整代码,粘贴至 nano 编辑器中。
- 在
nano编辑器里,找到脚本顶部的配置区域。 - 将
TELEGRAM_BOT_TOKEN的值替换成你自己的Bot Token。 - 将
TELEGRAM_CHAT_ID的值替换成你自己的Chat ID。 - (可选)在
MONITOR_PRODUCTS列表中,修改商品名称,或添加/删除你想监控的商品。 - 配置完成后,按
Ctrl + X,然后按Y,最后按回车键,保存并退出。
在正式部署前,先手动运行一次,确保一切正常。
python3 stock_monitor.py如果你的配置都正确,你应该能看到脚本开始检查商品,并成功收到第一批Telegram通知。确认无误后,按 Ctrl + C 停止脚本。
为了让脚本能开机自启、无人值守地运行,我们将其创建为一个系统服务。
sudo nano /etc/systemd/system/stock-monitor.service将下面的配置内容完整地复制并粘贴到编辑器中。
[Unit]
Description=Stock Monitor Service by Gemini
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/stock_monitor
ExecStart=/usr/bin/python3 /home/ubuntu/stock_monitor/stock_monitor.py
Restart=always
RestartSec=15
[Install]
WantedBy=multi-user.target注意:这里的
User和路径WorkingDirectory/ExecStart都是基于你的用户名是ubuntu。如果你的用户名是root或其他,请务必修改。
粘贴后,按 Ctrl + X -> Y -> 回车,保存并退出。
依次运行以下命令:
# 重新加载systemd配置,让新服务生效
sudo systemctl daemon-reload
# 立即启动服务
sudo systemctl start stock-monitor
# 设置服务为开机自启
sudo systemctl enable stock-monitor现在,你的脚本已经是一个真正的后台服务了。
-
查看服务状态:
sudo systemctl status stock-monitor.service
看到绿色的
active (running)就代表一切正常。 -
查看实时日志:
journalctl -u stock-monitor.service -f
-
停止服务:
sudo systemctl stop stock-monitor.service
-
重启服务 (例如,在你修改了
stock_monitor.py的配置后):sudo systemctl restart stock-monitor.service
至此,你已成功搭建了一个强大、稳定、全自动的库存监控系统。恭喜!