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

Publicado em: 11/10/2007  |  ASP  |  Visualizações: 2.082  |  1 Comentário(s)
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 "<table>"

'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
%><style type="text/css">
<!--
a:link {
color: #000000;
text-decoration: underline;
}
a:visited {
text-decoration: underline;
color: #000000;
}
a:hover {
text-decoration: none;
color: #000000;
}
a:active {
text-decoration: underline;
color: #000000;
}
-->
</style>
<tr>
<td><font face="Verdana" size="1"><a href="LeNoticia.asp?url=<%=arrLinks(i)%>"><%=arrTitulos(i)%></a></font></td>
</tr>
    <p>
      <%
Next

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

End If


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


Resultado página:


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

LeNoticia.asp

<style>
h1 {
font-family: verdana;
font-size: 12px;
color: #0033CC;
}
p {
font-family: verdana;
font-size: 10px;
text-align: justify;
}

.fe230 {
width: 235px;
float: left;
padding: 10px;
}

.fd230 {
width: 235px;
float: left;
padding: 10px;
}

.fe175 {
width: 180px;
float: left;
padding: 10px;
}

.fd175 {
width: 180px;
float: left;
padding: 10px;
}

.fo1c {
font-family: verdana;
font-size: 10px;
color: #999999;
}

.fo1l {
font-family: verdana;
font-size: 10px;
}

</style>

<%

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 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,"<!--TITULO-->")
Titulo2=Split(Titulo(1),"<!--/TITULO-->")
ArtigoTitulo = Titulo2(0)

'Pego o corpo da notícia
Texto = Split(resultado,"<!--TEXTO-->")
Texto2=Split(texto(1),"<!--/TEXTO-->")
Texto3=Split(texto2(0),"<div id=""articleEnd"">")
ArtigoTexto = texto3(0)


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

Response.Write "<h1>" & ArtigoTitulo & "</h1>"
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
%>

<p align="right"><font face="Verdana" size="1"><a href="javascript:history.back()">< Voltar</a></font></p>


Resultado final:


O código esta todo comentado e foi desenvolvido por: 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
Arquivo anexo: Clique aqui para download
compartilhe
  Dica: Confira todo nosso conteúdo de ASP no site.
Links patrocinados
Últimos artigos do editor

asp.jpg Gráfico Dinâmico Utilizan.
Nesta coluna aprenderemos mo.
asp.jpg Galeria de Fotos com Efei.
Quer montar uma galeria de f.
asp.jpg Usando DateDiff
Se você não conhece essa fun.
asp.jpg Mala direta e-mail com se.
Exemplo de envio de e-mail p.
asp.jpg Aniversáriantes do Mês
Exemplo básico de como exibi.
asp.jpg Notícias atualizadas em s.
Inserindo notícias atualizad.
Opinião do leitor:
1 Comentário(s)

 Alessandro Duthmann comentou:

Coloquei o codigo, so que alterei a URL e quando clico no link traz a pagina inteira e nao a noticia na minha pagina

Publicado em: 28/05/2008 - 15:17

Acesso restrito
Destaques
Instalando WORDPRESS Instalando WORDPRESS
Neste tutorial vamos aprender instalar o WORDPRESS em um servidor local. O mesmo serve para um servidor web.
Peixe Grande 2008 Peixe Grande 2008
O Oficina da Net está este ano participando do Projeto Peixe Grande 2008 na categoria de Blog. Ajude-nos vote!
iPhone 3G no Brasil iPhone 3G no Brasil
O smartphone da Apple chegou ao Brasil com a tecnologia de terceira geração de telefonia.
Links patrocinados
Autor
Artigos Relacionados
Novos Artigos
Notícias Relacionados
Assine nosso RSS

© 2005 - 2008 - Oficina da Net - v 3.0 - É proibida a reprodução parcial ou completa do conteúdo deste site sem autorização por escrito. Resolução adequada: 1024x768px.