有哪些比较简单的技术手段或者付费方案?
通用方法
如果最后要以 RSS 形式输出的话,可以试试 RSS Everything 这个服务,类似以前的 Feed43(已停止服务)。
一般情况下,它可以为没有 RSS 的网站制作 RSS 订阅链接。
利用 Python 的 Beautiful Soup 包
不过我看了下你提供的网页,用 RSS Everything 第一步就获取不到正文内容,只能拿到网页结构。说明这个网页是用 JS 获取内容的方法,还可能做了一些反爬的策略。所以这个网页只是内容简单,获取它并不简单 。
所以这个问题如果让我来解决的话,我可能就考虑直接写段 Python 扔服务器后台跑着了。
我找 ChatGPT 写了段 Python,可以实现每小时检测网页变化。
安装依赖:
pip install beautifulsoup4
代码:
import requests
import time
import hashlib
import json
from bs4 import BeautifulSoup
def get_article_content(url):
headers = {'User-Agent': 'Mozilla/5.0'}
try:
response = requests.get(url, headers=headers)
response.raise_for_status()
soup = BeautifulSoup(response.text, 'html.parser')
article = soup.find(class_="article") # 查找 class="article" 的元素
return article.text.strip() if article else ""
except requests.RequestException as e:
print(f"请求错误: {e}")
return ""
def compute_hash(content):
return hashlib.sha256(content.encode()).hexdigest()
def send_notification_to_lark(webhook_url, message):
headers = {'Content-Type': 'application/json'}
payload = {
"title": "网页内容变化通知",
"text": message
}
try:
response = requests.post(
webhook_url, headers=headers, data=json.dumps(payload))
response.raise_for_status()
print("成功发送通知到 Lark")
except requests.RequestException as e:
print(f"发送通知错误: {e}")
url = "https://help.openai.com/en/articles/6825453-chatgpt-release-notes"
lark_webhook_url = "你的 Lark Webhook URL"
last_hash = None
check_interval = 60*60 #频率可以自己调整,这里是60分钟
while True:
content = get_article_content(url)
if content:
print(content) # 打印当前获取的内容
current_hash = compute_hash(content)
if current_hash != last_hash:
print("检测到文章内容变化!")
send_notification_to_lark(lark_webhook_url, "ChatGPT Release Notes 页面有更新。")
last_hash = current_hash
else:
print("文章内容未变化。")
else:
print("未找到文章内容或无法获取网页。")
time.sleep(check_interval)
只要填写一个 Lark 的 Webhook 链接,然后在一台机器上让这段代码持续运行即可。
这个解决方案可能过于程序员了一点,回头我再找找有没有更好的办法。
1 个赞
方案简洁优雅,还学习到了新知识
1 个赞