我的脚本每 45 秒向 API 端点发送一次请求,以获取最新的“帖子标题”(如果有新的帖子标题打印在我的控制台上)。假设脚本在下午 6:00:00 发送请求,那么下一个请求将是下午 6:00:45,如果网站在下午 6:00:15 发布新的“标题”,则直到下一次检查(即 6)时才会打印:00:45 PM..我如何修改脚本以立即打印这个新的“标题”,而不是等待下一个请求直到下午 6:00:45。
Python脚本:
import requests
import time
url = 'https://example.com/api'
headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"}
previous_titles = []
def fetch_titles():
global previous_titles
while True:
resp = requests.get(url, headers=headers)
data = resp.json()
for title in data['latest']['posts']:
if title['title'] not in previous_titles:
current_time = time.strftime('%Y-%m-%d %H:%M:%S')
print(f"[{current_time}] {title['title']}")
previous_titles.append(title['title'])
time.sleep(45)
if __name__ == "__main__":
fetch_titles()
我可以设置间隔每 6 秒检查一次并打印新的,但我不想向网站发出很多请求。
如果您无法每 6 秒 ping 站点一次以上,则无法通过 POST 请求执行此操作。使用此模型,如果没有请求,就无法将数据从服务器传输到客户端。如果您是后端架构师,我建议您研究一下 Websockets 或服务器端事件。如果您没有构建后端,则可能已经实现了其中之一。您尝试 ping 的服务是什么?