在bash中使用新闻api并写入网页

时间:2013-11-23 20:33:16

标签: bash api

我正在编写一个生成网页的脚本,我希望它能够显示当前新闻。我想使用The Guardians API,但我无法弄清楚如何让它工作。以下是The Guardian API http://www.theguardian.com/open-platform/getting-started的链接。我现在的代码是:

#!/bin/bash
news()
{
cat <<- _EOF_


_EOF_


write_page()
{
    cat <<- _EOF_
    <html>
        <head>
        </head>
        <body>
        $(news)
        </body>
    </html>
_EOF_
}
write_page > testNews.html

我想我需要在cat <<- _EOF__EOF_中添加一些HTML文字,但我不知道如何让它工作。我很擅长使用API​​和bash

1 个答案:

答案 0 :(得分:1)

您可以使用以下API调用来获取当前新闻:

curl "http://content.guardianapis.com/search?from-date=2013-11-23&to-date=2013-11-24&format=xml"

问题是你会得到XML格式的结果,而你想要HTML格式。如果您安装xsltproc,可以编写一个简单的转换脚本guardian.xsl,如下所示:

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
    <ol>
    <xsl:for-each select="response/results/content">
    <li>
        <ul>
          <li><xsl:value-of select="@web-title"/></li>
          <li><xsl:value-of select="@web-url"/></li>
        </ul>
    </li>
    </xsl:for-each>
    </ol>
</xsl:template>

</xsl:stylesheet>

然后你的命令会变成:

curl -s "http://content.guardianapis.com/search?from-date=2013-11-23&to-date=2013-11-24&format=xml" | xsltproc guardian.xsl -