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"
答案 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: /
<强>参考强>