用新RSS项触发Python脚本

0 投票
2 回答
1283 浏览
提问于 2025-04-18 17:33

我写了一个小程序,用Python语言来解析一个网站,目的是提取某个版块的主要新闻。现在我想每次网站上新增内容时,就自动运行这个程序,利用RSS订阅源来实现。我在使用Raspbian系统。请问有没有什么工具可以让我收到这样的通知呢?

谢谢!

2 个回答

0

其实你可以自己写一个这样的工具,使用定时任务(cronjob)。下面是具体的步骤:

  • 先查看一些RSS的XML源文件,你会发现里面有一个叫做lastBuildDate的标签。这个标签告诉你这个RSS源最后一次更新的时间。比如,你可以查看BBC的这个 RSS源的源代码。
  • 修改你的脚本,让它检查lastBuildDate标签,以便知道自上次检查以来这个RSS源是否有更新。
  • 写一个小的定时任务,让你写的脚本每隔n分钟运行一次。我没有用过Raspbian,但因为它是基于Debian的,所以应该支持定时任务。你可以用python-crontab来写一个。可以参考这个或者这个来开始使用python-crontab
2

经过一番研究,我发现了一个叫做 rsstail 的工具,感谢这个问题 在这里。唯一的问题是,它在运行几分钟后要么出错,要么就完全停止了。所以我找到了 这个,它和之前的功能完全一样,只不过是用 Python 写的,而且不会崩溃(至少对我来说是这样)。接下来,我设置了一个小的 bash 脚本,让它在启动时执行,使用的是 crontab。这个脚本如下:

#!/bin/bash
rsstail -i 15 --initial 1 http://feeds.bbci.co.uk/news/rss.xml?edition=us | while read line
  do
    /Users/aUser/Desktop/myScript.py
  done

这意味着每当有新内容添加时,脚本 myScript.py 就会被执行。记得要运行 sudo chmod 777 myScript.py,否则会提示你没有权限,导致执行失败。

撰写回答