python-3.x - 通过检查是否添加了任何新消息来抓取最新消息
问题描述
from bs4 import BeautifulSoup
import requests
import smtplib
import time
def live_news():
source = requests.get(
"https://economictimes.indiatimes.com/news/politics-and-nation/coronavirus-
cases-in-india-live-news-latest-updates-april6/liveblog/75000925.cms"
).text
soup = BeautifulSoup(source, "lxml")
livepage = soup.find("div", class_="pageliveblog")
each_story = livepage.find("div", class_="eachStory")
news_time = each_story.span.text
new_news = each_story.div.text[8::]
print(f"{news_time}\n{new_news}")
while(True):
live_news()
time.sleep(300)
所以基本上我正在尝试从新闻网站上抓取最新的新闻更新。我正在寻找的是仅打印最新消息及其时间,而不是整个新闻标题。使用上面的代码,我可以获得最新的新闻更新,程序将每 5 分钟向服务器发送一次请求(这是我给出的延迟)。但这里的问题是,如果页面中没有其他最新消息更新,它将在 5 分钟后再次打印之前打印的相同消息。我不希望程序再次打印相同的新闻,而是想在程序中添加一些条件。这样它将每 5 分钟检查一次是否有任何新更新或相同的先前新闻。如果有任何新的更新,那么它应该打印它,否则不应该。
解决方案
我自己找到了答案。我觉得有点愚蠢,它很简单,你只需要一个额外的文件来存储值。由于在每次执行之间,变量值都会被重置,因此您需要一个额外的文件来在需要时读取/写入数据。
推荐阅读
- .net - 为什么 dotnet build 和 build in Visual Studio 会产生不同的输出?
- javascript - 两个不同的 .Click() 函数同时工作而不是单独工作 - jquery
- javascript - 通过 JS 更改 CSS 变量
- flutter - RangeSlider 上的 Flutter RangeLabels 不起作用
- php - Codeigniter 3 博客应用程序错误:即使帖子标题没有更改,也要发布 slug 更新
- python - 性能改进 - 搜索 dict (id -> list of lists)
- java - 使用 FileWriter 覆盖相同的文件
- r - 不能使用大于和替换年份
- javascript - 我无法使用
- spring - Thymeleaf 无法将多部分文件转换为字节