使用 bash 获取 RSS 提要的标题

Get title of an RSS feed with bash

如何使用 Bash 获取 RSS 提要的标题?假设我想从 MacRumors 获取最新文章。他们的 RSS 提要 link 是 http://feeds.macrumors.com/MacRumors-All。如何使用 Bash 获取最新的文章标题?

您可以组合 curl 和 XPath 表达式(此处使用 xmllint),并依赖于提要按时间倒序排列的事实:

curl http://feeds.macrumors.com/MacRumors-All | xmllint --xpath '/rss/channel/item[1]/title/text()'

有关评估 XPath 的其他方法,请参阅 How to execute XPath one-liners from shell?

特别是,如果您有 xmllint--xpath 的旧 xmllint,您可以使用 this wrapper 推荐的技术:

echo 'cat /rss/channel/item[1]/title/text()' | xmllint --shell <(curl http://feeds.macrumors.com/MacRumors-All)

xmllint 的替代方法是 xmlstarlet,因此:

curl -s http://feeds.macrumors.com/MacRumors-All |  xmlstarlet sel -t -m "/rss/channel/item[1]" -v "title"

使用xmlstarlet sel命令select我们要查找的xpath,然后使用-v显示特定元素。