使用 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显示特定元素。
如何使用 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显示特定元素。