English 中文(简体)
如何在shell脚本中解析RSS源/ XML
原标题:
  • 时间:2009-01-14 17:47:39
  •  标签:

我想解析RSS源并在我的ReadyNas上下载播客。ReadyNas一直运行24/7。

所以我在考虑定期使用 shell 脚本检查订阅源并生成 wget 下载文件。

最佳的解析方式是什么?

谢谢!

最佳回答

有时候,使用shell标准命令的简单一行代码就足够了:

 wget -q -O- "http://www.rss-specifications.com/rss-podcast.xml" | grep -o  <enclosure url="[^"]*  | grep -o  [^"]*$  | xargs wget -c

当然,并不是在所有情况下都起作用,但通常足够好了。

问题回答

你有awk吗?也许你可以使用XMLGawk

我在这里和那里都读到了关于XMLStartlet的信息(http://xmlstar.sourceforge.net/http://bashcurescancer.com/the-best-in-command-line-xml-xmlstarlet.html),详见这里

但是ReadyNas NV+有端口可用吗?

我编写了以下简单的脚本,用于从亚马逊S3下载XML,因此它可以用于解析不同类型的XML文件:

#!/bin/bash
#
# Download all files from the Amazon feed
#
# Usage:
#  ./dl_amazon_feed_files.sh http://example.s3.amazonaws.com/
# Note: Don t forget about slash at the end
#

wget -qO- "$1" | grep -o  <Key>[^<]*  | grep -o "[^>]*$" | xargs -I% -L1 wget -c "$1%"

这是类似于@leo答案的方法。

您可以使用来自libxml2的xsltproc,并编写一个简单的xsl样式表来解析rss并输出链接列表。





相关问题
热门标签