/ / Obtendo o Yahoo! Financie RSS usando JQuery e erro da API do Google - jquery, rss, google-api, yahoo

Obtendo o Yahoo! Finanças RSS usando JQuery e erro de API do Google - jquery, rss, google-api, yahoo

Tentando obter RSS do Yahoo! Finanças baseadas nas respostas de Andrew e Dylan Valade em Analisar RSS com jQuery mas recebendo um erro:

data.responseData é nulo

sucesso() data = Objeto {responseDetails = "Não foi possível carregar o feed.", responseStatus = 400, responseData = null}

Carregar a mesma URL do navegador ou PHP cURL retorna os dados do RSS ok

url: http://feeds.finance.yahoo.com/rss/2.0/headline?s=^ FTSE, codificação de URL: http% 3A% 2F% 2Ffeeds.finance.yahoo.com% 2Frss% 2F2.0% 2Fheadline% 3Fs% 3D% 5EFTSE

Teste do vhost local no meu Mac (OS X 10.5.8, XAMPP 1.7.3). Tentei o plugin zRSSfeed que também usa a API do Google e recebi o mesmo erro: "Não foi possível carregar o feed". Os dados e o gráfico do índice estão funcionando bem

desde já, obrigado


function getRSS(symbol, url, callback) {
$("#rss").html("http://feeds.finance.yahoo.com/rss/2.0/headline?s="+symbol+"<br />");
$("#rss").append(encodeURIComponent(url));
$.ajax({
url: document.location.protocol + "//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=" + encodeURIComponent(url),
dataType: "json",
success:
function (data) {
callback(data.responseData.feed);
},
error:
function (jqXHR, textStatus, errorThrown) {
$("#rss").append("<span class="downVal">"+textStatus+"</span>");
$("#rss").append("<br />"+"<span class="downVal">"+errorThrown+"</span>");
}
});
}

function parseRSS(newsFeed) {
$("#rss").append(newsFeed);
}

jQuery(document).ready(function($) {
...
summary(symbol);
$("#chart").html("<img style="-webkit-user-select:none" src="/images/http://chart.finance.yahoo.com/z?s="+symbol+"&t=3m&q=l&l=on&z=m&p=m20,m200,v&a=r14,m26-12-9">");
getRSS(symbol, "http://feeds.finance.yahoo.com/rss/2.0/headline?s="+symbol, parseRSS);
...

Respostas:

3 para resposta № 1

A primeira coisa a destacar é que o feed está retornando um código 400 - portanto, de acordo com Recomendações do W3C, você não deve repetir a chamada.

10.4.1 400 Solicitação incorreta

A solicitação não pôde ser entendida pelo servidor devido a malformações sintaxe. O cliente não deve repetir o pedido sem modificações.

Quando abro o URL:

http://feeds.finance.yahoo.com/rss/2.0/headline?s=^FTSE

Eu recebo um erro 404, então talvez a pesquisa nem sempre seja válida ou a taxa seja limitada?

Se você está convencido de que a chamada está correta, provavelmente há um problema com a linha que chama o feed:

$("#rss").html("http://feeds.finance.yahoo.com/rss/2.0/headline?s="+symbol+"<br />"

Portanto, retire-o, alerte a variável do símbolo para garantir que é o que você deseja, adicione linhas como as seguintes para algumas depurações rudimentares:

alert (symbol);
var feedUrl = "http://feeds.finance.yahoo.com/rss/2.0/headline?s="+symbol;
alert (feedUrl);

... e, finalmente, verifique se anexando o <br /> está realmente quebrando o URL do feed.