Python 3.x 通过检查是否添加了任何新新闻来抓取最新新闻

Python 3.x 通过检查是否添加了任何新新闻来抓取最新新闻,python-3.x,web-scraping,beautifulsoup,Python 3.x,Web Scraping,Beautifulsoup,所以基本上我想从一个新闻网站上获取最新的新闻更新。我要找的是只打印最新的新闻及其时间,而不是整个新闻标题。 通过上面的代码,我可以获得最新的新闻更新,程序将每隔5分钟向服务器发送一次请求(这是我给出的延迟)。但这里的问题是,如果页面中没有其他最新消息更新,它将在5分钟后再次打印以前打印的相同新闻。我不希望程序再次打印相同的新闻,相反,我想为程序添加一些条件。因此,它将每5分钟检查一次是否有任何新的更新或与以前的新闻相同。如果有任何新的更新,那么它应该打印,否则不应该。我能想到的解决方案是If语句

所以基本上我想从一个新闻网站上获取最新的新闻更新。我要找的是只打印最新的新闻及其时间,而不是整个新闻标题。
通过上面的代码,我可以获得最新的新闻更新,程序将每隔5分钟向服务器发送一次请求(这是我给出的延迟)。但这里的问题是,如果页面中没有其他最新消息更新,它将在5分钟后再次打印以前打印的相同新闻。我不希望程序再次打印相同的新闻,相反,我想为程序添加一些条件。因此,它将每5分钟检查一次是否有任何新的更新或与以前的新闻相同。如果有任何新的更新,那么它应该打印,否则不应该。

我能想到的解决方案是If语句。在第一次运行代码时,变量
check\u last\u time
为空,当您调用
live\u news()
时,它会被赋值为
news\u time

之后,每次调用
live\u news()
时,它首先检查当前
news\u时间是否与
check\u last\u时间不相同,如果不相同,它将打印新故事:

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) 

我自己找到了答案。我觉得有点傻这很简单,你只需要一个额外的文件来存储值。因为在每次执行之间,变量值将被重置,因此您需要一个额外的文件来读取/写入数据。

添加完整的代码亲爱的Dinkan-除非您分享更多的见解,让我们看更多的代码,否则我们无法为您做任何事情。请添加以下代码!thx-inadvance@zero现在添加了完整的代码。对不起,我的不好。谢谢你的回复,但遗憾的是它不起作用。它还在印刷同样的新闻。看起来全局变量值没有更新。哦,是的,现在我才意识到我有多愚蠢。。当程序重新运行时,变量不能保留值。我必须在我假定的某个文件中具有该值。我说得对吗?
# Initialise the variable outside of the function
check_last_time = [] 
def live_news():
    ...
    ...
    # Check to see with the times don't match
    if news_time != check_last_time:
        print(f"{news_time}\n{new_news}")
        # Update the variable with the new time
        check_last_time = news_time