雅虎查询语言 - RSS

时间:2015-02-10 17:24:31

标签: javascript rss yql

var site = 'www.mysite.com/news.aspx?rss=1';
var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from xml where url="' + site + '"') + '&format=xml';
$.get(yql).done(function (rss)
{
         //do the Things
}

目前我有这个功能试图加载外部网站RSS提要。不幸的是,它没有正确加载Feed,所以我无法做到这一点。这个Feed正在使用Google Feeds Api正确加载,但由于这很快就被删除了,我正试图在Javascript(跨域)中使用不同的RSS加载方法。我在YQL网址上做错了吗?

        error="Redirected to a robots.txt restricted URL: http(s)://www.mySite.com/news.aspx?rss=1"

1 个答案:

答案 0 :(得分:0)

使用以下URL映射作为测试:

'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from xml where url="http://www.bls.gov/feed/empsit.rss"')

生成有效的YQL查询:

https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D%22http%3A%2F%2Fwww.bls.gov%2Ffeed%2Fempsit.rss%22

使用以下JSON备用输出:

https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D%22http%3A%2F%2Fwww.bls.gov%2Ffeed%2Fempsit.rss%22&format=json

并记住以下限制以排除故障:

  

YQL使用服务器上的robots.txt文件来确定可从您的网站访问的网页。 YQL使用用户代理" Yahoo Pipes 2.0"访问robots.txt文件并检查此用户代理是否允许/不允许时。如果robots.txt检查确实阻止了YQL访问您的内容,那么它将使用其他用户代理获取目标页面:

因此,要允许YQL访问您的内容,只需添加" Yahoo Pipes 2.0"到robots.txt的相关部分。例如:

User-agent: Yahoo Pipes 2.0
Allow: /

<强>参考