You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现Xpath不存在时播放MP3 定时2分钟检测网站变更方法

网站变更告警脚本实现方案

代码逻辑修正

你原有代码的问题是driver.find_element在匹配不到元素时会直接抛出NoSuchElementException异常,不会返回布尔值,无法直接用于if条件判断,建议用find_elements方法实现判断:

# 导入依赖包
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import webbrowser

# 初始化浏览器驱动,建议提前安装webdriver-manager自动适配驱动版本,无需手动下载
driver = webdriver.Chrome()
# 替换为你需要监测的目标网站地址
TARGET_URL = "你的目标网站URL"
# 替换为你的音频文件路径
ALERT_AUDIO_PATH = r"C:\Users\Julian Layton\Desktop\Andalusia\I Remember.mp3"
# 监测间隔,单位秒,2分钟即120秒
CHECK_INTERVAL = 120

def site_check():
    driver.get(TARGET_URL)
    # 等待页面加载完成,可根据网络情况调整时长,也可替换为显式等待提高稳定性
    time.sleep(3)
    # find_elements匹配不到元素会返回空列表,空列表布尔值为False
    if driver.find_elements(By.XPATH, "/html/body/div[1]/div[2]/h1"):
        # 元素存在,直接结束本次检测
        return
    # 元素不存在,触发告警
    webbrowser.open(ALERT_AUDIO_PATH)

if __name__ == "__main__":
    while True:
        site_check()
        time.sleep(CHECK_INTERVAL)

如果不想触发告警时弹出浏览器窗口,可替换音频播放方案:安装1.2.2版本的playsound库pip install playsound==1.2.2,将webbrowser.open(ALERT_AUDIO_PATH)替换为playsound(ALERT_AUDIO_PATH)即可。

VS Code运行操作步骤

  • 打开VS Code终端,选中你使用的Python解释器,执行pip install selenium安装依赖
  • 如果使用自动驱动管理,额外执行pip install webdriver-manager,将驱动初始化代码替换为:
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
  • 脚本编辑完成后,在VS Code终端执行python 你的脚本文件名.py即可启动监测,保持终端窗口不关闭,脚本就会每2分钟自动执行一次检测。

内容的提问来源于stack exchange,提问作者Julian Layton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:57:03