【问题标题】:Yahoo Query Language - RSS雅虎查询语言 - RSS
【发布时间】:2015-02-10 17:24:30
【问题描述】:
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 提要。不幸的是,它没有正确加载提要,所以我不能做这些事情。此提要使用 Google 提要 Api 正确加载,但由于该提要很快将被弃用,因此我正尝试使用 Javascript(跨域)中的另一种 RSS 加载方法。我在 YQL 网址上做错了什么吗?

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

【问题讨论】:

    标签: javascript rss yql


    【解决方案1】:

    使用以下 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 在访问 robots.txt 文件时使用用户代理“Yahoo Pipes 2.0”并检查该用户代理的允许/禁止。如果 robots.txt 检查确实阻止 YQL 访问您的内容,那么它将使用不同的用户代理获取目标页面:

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

    User-agent: Yahoo Pipes 2.0
    Allow: /
    

    参考文献

    【讨论】:

      猜你喜欢
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 2011-06-27
      • 2015-05-12
      • 1970-01-01
      • 2013-01-20
      相关资源
      最近更新 更多