我想解析RSS源并在我的ReadyNas上下载播客。ReadyNas一直运行24/7。
所以我在考虑定期使用 shell 脚本检查订阅源并生成 wget 下载文件。
最佳的解析方式是什么?
谢谢!
我想解析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并输出链接列表。