Me encanta recibir “buenas noticias” (con Python)

Acá les dejo un pequeño programa en Python que busca “buenas noticias” en los feeds RSS de Clarín, InfoBAE y La Nación.

Es altamente configurable (pueden agregar o quitar palabras clave y feeds editando FEEDS y KEYWORDS).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# -*- coding: utf-8 -*-
 
import feedparser
import re
 
FEEDS = {
    u'Clarín': 'http://www.clarin.com/diario/hoy/um/sumariorss.xml',
    u'InfoBAE': 'http://www.infobae.com/adjuntos/html/RSS/hoy.xml',
    u'La Nación': 'http://www.lanacion.com.ar/herramientas/rss/index.asp',
}
 
KEYWORDS = ['muerto', 'caos', 'inseguridad']
 
def main():
    regexps = [re.compile(keyword, re.IGNORECASE) for keyword in KEYWORDS]
    for feed_name, feed_source in FEEDS.iteritems():
        for entry in feedparser.parse(feed_source).entries:
            for r in regexps:
                if r.search(entry.title):
                    print '%s: %s - %s' % (feed_name, entry.title, entry.link)
                    break 
 
if __name__ == '__main__':
    main()

Acá tienen unos resultados de ejemplo:

1
2
3
4
5
6
7
mahadeva@blue:~$ python buenasnoticias.py
InfoBAE: Un muerto y miles de evacuados por una explosión en Rusia - http://www.infobae.com/mundo/484082-101275-0-Un-muerto-y-miles-de-evacuados-por-una-explosión-en-Rusia
La Nación: Varios muertos en Rusia tras una explosión en un arsenal militar - http://www.lanacion.com.ar/nota.asp?nota_id=1199099
Clarín: Inseguridad: en medio de los cruces, el oficialismo se despega de D'Elía - http://www.clarin.com/diario/2009/11/13/um/m-02040147.htm
Clarín: 12:35 - Detienen a tres chicos por el caso del empresario muerto por una pedrada - http://www.clarin.com/diario/2009/11/13/um/m-02040124.htm
Clarín: Otro choque en la General Paz provocó un caos en el tránsito - http://www.clarin.com/diario/2009/11/13/um/m-02040083.htm
Clarín: Detienen a tres chicos por el caso del empresario muerto por una pedrada - http://www.clarin.com/diario/2009/11/13/um/m-02040124.htm