Abrindo notícia em página através de FEED

Neste artigo você irá conseguir abrir as notícias em seu site podendo formatar a página de exibição da notícia, sem ter que abrir em uma nova página como no exemplo anterior que eu havia passado.

Por | @oficinadanet Programação
Veja como é simples ter seu site atualizado com notícias em tempo real abrindo em seu site. O legal deste código é que você consegue abrir a notícia diretamente em seu site, sem abrir em uma nova página ainda podendo definir o o layout das notícias, é relativamente simples mas não existe muitos exemplos na web. Vou tentar deixar o mais simples possível para não existir mais problemas com notícias.

Abaixo como desenvolver as páginas para inserir em seu site.

Iremos criar duas páginas:
ListaNoticias.asp e LeNoticia.asp

Vamos iniciar pela página que faz a leitura da notícia e exibe a lista de notícia para você:

ListaNoticias.asp
<%

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' SCRIPT PARA LEITURA E EXIBIÇÃO DE NOTÍCIAS DA FOLHA DE SP '
'   Desenvolvido em 5/9/2007. Última revisão em 27/9/2007   '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Definição da codificação da página
Response.CharSet="utf-8"

'Defina aqui a URL do Feed
FeedURL = "http://feeds.folha.uol.com.br/folha/informatica/rss091.xml"


'Crio o objeto MSXML que baixará o feed XML
Set xmlDoc = CreateObject("MSXML.DOMDocument")
xmlDoc.async = false
xmlDoc.setProperty "ServerHTTPRequest", true
xmlDoc.load(FeedURL)

'Se houver algum erro durante o carregamento do XML
If (xmlDoc.parseError.errorCode <> 0) then
Response.Write "Não foi possível abrir o XML."
Else
'Senão inicio a leitura do XML

'Leio o nó "Canal" para baixar informações sobre o XML
Set NohsDeCanal = xmlDoc.selectNodes("//channel/*")
For Each entry in NohsDeCanal
If entry.tagName = "title" then
TituloDoCanal = entry.text
ElseIf entry.tagName = "description" then
DescricaoDoCanal = entry.text
ElseIf entry.tagName = "link" then
LinkDoCanal = entry.text
End If
Next

'Inicio a leitura do nó que contém os itens (matérias) da Folha
Set NohsDeItem = xmlDoc.selectNodes("//item/*")
For Each item in NohsDeItem
If item.tagName = "title" then
ItensTitulo = ItensTitulo & item.text & "#%#"
ElseIf item.tagName = "link" then
ItensLink = ItensLink & item.text & "#%#"
ElseIf item.tagName = "description" then
ItensDescricao = ItensDescricao & item.text & "#%#"
End If
Next

'Crio um array com todos os itens para posterior leitura/tratamento
arrTitulos = split(ItensTitulo,"#%#")
arrLinks = split(ItensLink,"#%#")
arrDescricoes = split(ItensDescricao,"#%#")


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''                        Aqui começo a montar a página                         ''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Inicio a tabela que conterá os links para as notícias
Response.Write ""

'Mostro todos os links de matérias para o XML
For i=0 to uBound(arrTitulos)

'Trato o link para a matéria para que o link não
'apareça no GET da página que lê as notícias por completo
%>



    


      <%
Next

'Fecho a tabela que conterá os links para as notícias
Response.Write "

<%=arrTitulos(i)%>
"

End If


'Elimino todos os itens e objetos criados
Set xmlDoc = Nothing
Set NohsDeCanal = Nothing
Set NohsDeItem = Nothing
%>

  


Resultado página:
Abrindo notícia em página através de FEED

Agora vamos para a página que exibe a notícia formatada em seu site:

LeNoticia.asp



<%

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' SCRIPT PARA LEITURA E EXIBIÇÃO DE NOTÍCIAS DA FOLHA DE SP '
'   Desenvolvido em 5/9/2007. Última revisão em 27/9/2007   '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Definição da codificação da página
Response.CharSet="utf-8"

'Requisito a URL
url=Request("url")

'Só executo a página se algum parâmetro vier pela URL
If url<>"" Then

'Crio o objexto XmlHttp que vai baixar a página da folha de SP
Set objXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.4.0")
'Abro a URL
objXmlHttp.Open "GET", URL, False
objXmlHttp.Send

'Crio o objeto stream -> Este é um FIX que corrige o bug dos acentos
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type=2

'Escreve para o objeto stream o conteúdo que veio pelo XMLHttp
objStream.WriteText (objXmlHttp.responseBody)
objStream.Position=0
'Modifica o charset da página para LATIN-1. Isso faz com que
'os acentos sejam lidos corretamente
objStream.Charset = "latin1"

'Passa para a variável "Resultado" o texto com os acentos já convertidos
Resultado = objStream.ReadText(-1)

'Apago os objetos pois não os usarei mais
objStream.Close
Set objStream = Nothing
Set objXmlHttp = Nothing


'Aqui eu trato o HTML da página da folha.

'Pego o título da notícia
Titulo = Split(Resultado,"")
Titulo2=Split(Titulo(1),"")
ArtigoTitulo = Titulo2(0)

'Pego o corpo da notícia
Texto = Split(resultado,"")
Texto2=Split(texto(1),"")
Texto3=Split(texto2(0),"
")
ArtigoTexto = texto3(0)


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''                            Aqui eu monto a página                            ''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Response.Write "

" & ArtigoTitulo & "

"
Response.Write ArtigoTexto

'Senão tiver vindo nenhum parâmetro pela URL eu informo
Else
Response.Write "Nenhum parâmetro de URL foi passado para a página"
End If
%>

< Voltar




Resultado final:
Abrindo notícia em página através de FEED

O código esta todo comentado e foi desenvolvido por: target="_blank">Bruno Barreto.

Vou continuar pesquisando novos scripts que seja útil no dia-dia de todos!

Lembrando que você pode usar o contador da máteria anterior e adaptar para este código.

Qualquer dúvida entre em contato comigo deixando um comentário.

Abraços!


Alexandre de Luccia

Mais sobre:
Share Tweet
DESTAQUESRecomendado
Mais compartilhados
Comentários