想知道网站何时发生变化?让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发送警报
✅ 在网站更新时自动执行操作
现在去自动化一些有用的东西吧! 🚀