• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Triton

[Python] Leitor de Feeds (RSS & Atom)

17 mensagens neste tópico

Como não tinha nada para fazer, programei um leitor de feeds rudimentar em Python.

import feedparser

feed = 'http://rss.slashdot.org/Slashdot/slashdot'

f = feedparser.parse(feed)

def showinfo():
   print f.feed.title
   print f.feed.subtitle
   print f.feed.link

def shownews():
   print
   print 'Latest news:'
   print
   for i in xrange(len(f.entries)):
       print '%i)' % (i+1), f.entries[i].title

def shownew(n):
   print
   print f.entries[n].title, '-', f.entries[n].date[:10]
   print
   print f.entries[n].description.split('<p>')[0].strip()

showinfo()
shownews()

while 1:
   print
##    i = raw_input('Choose a new to read (q to quit): ')
##    if not i.isalpha():
##        shownew(int(i)-1)
   try:
       i = input('Choose a new to read: ')
   except:
       break
   shownew(int(i)-1)
   print
   s = raw_input('Press any key to continue...')
   shownews()

Precisam do módulo FeedParser: http://feedparser.org/

EDIT: Nova versão, já não tem o "problema" dos links!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiquei curioso e decidi experimentar... Funciona muito bem!  :P

Apenas não processa algumas tags de html que vêem acrescentadas com algumas feeds mas no geral dá um bom resultado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiquei curioso e decidi experimentar... Funciona muito bem!  :P

Apenas não processa algumas tags de html que vêem acrescentadas com algumas feeds mas no geral dá um bom resultado.

Como disse fiz o programa muito rapidamente, não é nada de especial, mas fico contente que alguém tenha comentado, esta secção de Python está sempre às moscas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esta versão tem corrigido o aparecimento das tags dos links das notícias. Depois digam qualquer coisa...  :bye2:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

cool... o feed parser é curtido.

Bom exemplo para o pessoal ver o potencial desta tecnologia ( xml )

Tambem o estoua usar numa aplicacao que estou a desenvolver para manutencao de blogs. Fiquei surpreendido coma quantidade de códigopython disponivel por aí... pensei que ferramentas uteis como esta só estivessem amplamente disponiveis em php.

já agora.... triton... habitua-te a escrever os cabeçalhos com informação relevante e segundo as normas... para que possam ser facilmente documentados. E faz tambem o scriptzito de instalação das tuas aplucacoes como módulos, para que sejam mais facilmente reusáveis por ti e por todos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para que ia usar DocStrings numa coisa tão simples?

Já agora, qual script de instalação é estás a falar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Para que ia usar DocStrings numa coisa tão simples?

Para que alguém que queira aprender com o teu código consiga,por exemplo :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

estou a falar de fazeres um setup.py para qq pessoa poder injectar esse módulo para a sua instalação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei se sabes como funciona o Python, mas qualquer pessoa pode chegar ao script e fazer import nome_do_script e já o pode utilizar. O setup.py é usado para módulos um bocadito mais complicados e qual é o interesse de instalar isto na pasta do Python? Um simples python.exe nome_do_file.py e está resolvido.  :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

basta fazer import e o nome do ficheiro??? confesso que nao sabia.

De qq modo, o interesse é muito:

-ficando como módulo na pasta do python está acessível a partir de qq path.

-o código fica normalizado, a organização é muito importante quando se trabalha em vvarios projectos de dimensoes grandes

-instalção com duplo clique por qq utilizador

etc etc etc

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, mas isto não é algo para reutilizar, isto é um programa pronto a usar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

triton... arranquei com o wxpython, foi muuuuuuuuuuito mais facil do que eu estava à espera... então com a ajuda do wxglade... OMG.

como é, avançamos com um leitor de new todo pipi com um GUI?

Acho que podia ser uma enorme publicidade aqui para o fórum visto ser um prograa com um grupo de utilizadores alvo gigantesco.

EDIT: estive a dar uma olhadela no teu código até para me familiarizar como diferentes pessoas usam o python. Tens aí uma má prática de programação.

Apesar de as variáveis estarem todas a uso no seu scope, n é boa prática definir funções que não recebem os parametros que usam não sendo estes constantes definidas no inicio. Essas funções todas que definiste deviam receber o feed. Claro que neste caso não há problema, mas se escreveres um programa mais extenso esta via é meio caminho andado para ficares completamente perdido em relação ao scope das variáveis. E depois acabas por perder mais tempo com erros e abres lugar a buracos de segurança.

PS: scope scope scop... que raio... uma tradução de scope para portugues...alguem?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

triton... arranquei com o wxpython, foi muuuuuuuuuuito mais facil do que eu estava à espera... então com a ajuda do wxglade... OMG.

como é, avançamos com um leitor de new todo pipi com um GUI?

Acho que podia ser uma enorme publicidade aqui para o fórum visto ser um prograa com um grupo de utilizadores alvo gigantesco.

EDIT: estive a dar uma olhadela no teu código até para me familiarizar como diferentes pessoas usam o python. Tens aí uma má prática de programação.

Apesar de as variáveis estarem todas a uso no seu scope, n é boa prática definir funções que não recebem os parametros que usam não sendo estes constantes definidas no inicio. Essas funções todas que definiste deviam receber o feed. Claro que neste caso não há problema, mas se escreveres um programa mais extenso esta via é meio caminho andado para ficares completamente perdido em relação ao scope das variáveis. E depois acabas por perder mais tempo com erros e abres lugar a buracos de segurança.

PS: scope scope scop... que raio... uma tradução de scope para portugues...alguem?

Neste caso não há problema, mas em projectos de maior envergadura convém sempre fazer isso de forma a não teres problemas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

triton... arranquei com o wxpython, foi muuuuuuuuuuito mais facil do que eu estava à espera... então com a ajuda do wxglade... OMG.

como é, avançamos com um leitor de new todo pipi com um GUI?

Acho que podia ser uma enorme publicidade aqui para o fórum visto ser um prograa com um grupo de utilizadores alvo gigantesco.

Isso era uma coisa engraçada..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Yaps... mas como já há tanto leitor por aí fora decidi fazer outra coisa. Se alguem quiser aproveitar a ideia... força.

Não vou usar python desta vez nem wxglade. Vou experimentar XUL! ;) Tenho que usar javascript portanto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora