Pergunta

Eu recebo uma URL a partir de um usuário.Eu preciso saber:
a) é o URL válido feed RSS?
b) se não há um válido de alimentação associado a essa URL

usando PHP/Javascript ou algo semelhante

(Ex. http://techcrunch.com falha de um), mas b) deve retornar o seu feed RSS)

Editar:Ver o meu responder abaixo

Foi útil?

Solução

Encontrei algo que eu queria:

Google AJAX API de Alimentação tem uma carga de alimentação de pesquisa e função de alimentação (Docs aqui).

a) Carga de alimentação fornece a alimentação (e feed de status) em JSON

b) Pesquisa de alimentação fornece o RSS feed para uma determinada URL

Há também um encontrar o feed função de pesquisa para RSS feeds com base em uma palavra-chave.

O planejamento para usar esse com o JQuery $.getJSON

Outras dicas

O Zend Feed de classe do Zend framework pode analisar automaticamente uma página da web e lista os feeds disponíveis.

Exemplo:

$feedArray = Zend_Feed::findFeeds('http://www.example.com/news.html');

Este link irá permitir que você para validar o link contra o RSS/Atom especificações de utilizar o W3C especificações, mas requer que você insira manualmente o url.

Há um número de maneiras de fazer isso programaticamente, dependendo da sua escolha de linguagem em PHP, analisar o arquivo como XML válido é uma boa maneira de começar, e depois compare-as relevantes DTD.

Para b), se o link não é um feed, você pode analisá-lo e olhar para um determinado feed no <head> seção da página, em busca de um link cujo tipo é "application/rss+xml", e.g:

<link rel="alternate" title="RSS Feed" 
    href="http://www.example.com/rss-feed.xml" type="application/rss+xml" />

Este tipo de ligação é o utilizado pela maioria dos navegadores para "auto-descoberta" feeds (fazendo com que o ícone de RSS para aparecer na sua barra de endereços)

a) Recuperá-la e tentar analisá-lo.Se você pode analisá-lo, é válido.

b) Testar se é um documento HTML (servidor de envio text/html) O MIME-type.Se, então, executá-lo através de um analisador de HTML e procure por <link> elementos com RSS feed relações.

Para Perl, há Alimentação::Encontrar , que não automatizar a descoberta de sindicação de feeds da página da web.A utilização é bastante simplicistic:

use Feed::Find;
my @feeds = Feed::Find->find('http://example.com/');

Ele tenta primeiro o link etiquetas e, em seguida, verifica o a tags para arquivos com o nome .rss e algo como isso.

Você está fazendo isso em um idioma específico, ou apenas quer detalhes sobre a especificação RSS?

Em geral, a olhar para o XML prólogo:

<?xml version="1.0" encoding="UTF-8"?>

seguido por um <rss> elemento, mas você pode querer para validá-lo como XML, totalmente validá-lo contra um DTD, ou verificar que, por exemplo, cada URL referido é válido, etc.Mais detalhes iria ajudar.

ATUALIZAÇÃO:Ah - PHP.Eu encontrei esta biblioteca para ser bastante úteis: MagpieRSS

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top