使用Python构建自动网站监控工具

 

想知道网站何时发生变化?让Python为你处理!

你是否曾经每天手动检查一个网站,只是为了看看是否有变化?

也许你在:

✅ 等待某个产品重新上架

✅ 跟踪某个职位列表的更新

✅ 关注某个商品的降价情况

如果你可以停止手动检查,让Python在网站发生变化时自动提醒你,那该多好?

这正是我们今天要构建的内容:

一个免提网站监控器,可以检查网页并在发生变化时通知您。🚀


步骤 1:安装所需的库

在我们开始之前,请安装以下库:

pip install requests beautifulsoup4
  • requests → 获取网页
  • BeautifulSoup → 提取并比较页面内容

步骤 2:获取网页内容

首先,我们需要加载网页并存储其内容:

import requests

URL = "https://example.com"  # 你想要监控的网站

response = requests.get(URL)  # 获取网页
html_content = response.text  # 存储 HTML

这将整个页面作为原始 HTML 抓取。


步骤 3:提取仅重要部分

网页上有很多我们不需要的额外内容。我们使用 BeautifulSoup 来提取我们关心的部分:

from bs4 import BeautifulSoup

soup = BeautifulSoup(html_content, "html.parser")

# 找到页面中变化的部分(例如,价格、库存、文本)

target_element = soup.find("div", class_="price")  # 根据你的网站进行更改

if target_element:
    current_value = target_element.text.strip()
else:
    current_value = "未找到"

👉 将 "div", class_="price" 替换为您要监控的元素的实际 HTML 标签和类


步骤 4:保存初始值

为了检查变化,我们需要 记住之前的值。让我们保存它:

with open("previous_value.txt", "w") as file:
    file.write(current_value)

 


步骤 5:比较并发送警报

现在我们检查值是否改变,如果改变则通知您:

import time

while True:
    response = requests.get(URL)
 soup = BeautifulSoup(response.text, "html.parser")

new_value = soup.find("div", class_="price").text.strip()

# 从文件中读取之前的值
 with open("previous_value.txt", "r") as file:

previous_value = file.read().strip()

if new_value != previous_value:
print(f🔔 检测到变化!新值为: {new_value})

# 更新存储的值
with open(previous_value.txt, w) as file:
file.write(new_value)


time.sleep(60)  # 等待60秒后再检查

🚀 现在,Python为您监控网站!

  • 如果没有变化,它会持续检查。
  • 如果文本发生变化,它会在终端提醒您

步骤6:在您的手机或电子邮件上接收通知

终端提醒很好,但为什么不接收短信或电子邮件呢?

要接收电子邮件通知:

import smtplib

def send_email(message):
    sender_email = "your_email@gmail.com"
    receiver_email = "your_email@gmail.com"
    password = "your_app_password"

    with smtplib.SMTP("smtp.gmail.com", 587) as server:
        server.starttls()
        server.login(sender_email, password)

server.sendmail(sender_email, receiver_email, f"主题:网站更新\n\n{message}")

send_email(f"网站已更改!新值: {new_value}")

📩 现在每当有变化时,您会收到电子邮件通知!


接下来是什么?提升您的Python技能

这仅仅是个开始!您可以:

✅ 监控多个网站

✅ 通过短信、Telegram或Slack发送警报

✅ 在网站更新时自动执行操作

现在去自动化一些有用的东西吧! 🚀

更多