我想每隔几分钟运行一次Python脚本。该脚本首先从rss-feed(使用feedparser)获取最新文章。我想要的是,当最新的文章与上次运行时相同时,脚本就会结束。我该如何做到这一点?
答案 0 :(得分:5)
既然您在python问题中提到了feedparser,我会假设您的意思是feedparser.org
如果是,那么最简单的方法是让服务器为您完成大部分工作,并且仅在您上次更改后请求更新:请参阅ETag and Last-Modified headers for RSS feeds
答案 1 :(得分:3)
您可以将状态存储在临时文件中。例如。如果没有临时文件,则将标题写入临时文件,下次从文件中读取并将读取的标题与新标题进行比较。
答案 2 :(得分:0)
您可以采取多种不同的方法。最简单的可能是保留为您的程序处理的每个Feed获取的最新文章的唯一键或哈希值。这可能是文章标题和文章的组合。日期,甚至是文章全部内容的md5sum。
然后,您可以将此数据写入脚本的XML状态文件,或使用cpickle之类的内容保存数据。然后,每次程序运行时,只检索最新的订阅源文章(根据上次运行中的最新文章哈希检查每个文章)。
当然,不要忘记在脚本退出之前更新最新的文章提要哈希值。
如果您的脚本处理多个Feed,则您必须为每个Feed存储其中一个“最新文章哈希”项目。