View Single Post
Old 04-28-2010, 12:32 PM   #1859
yrvn
Member
yrvn began at the beginning.
 
Posts: 10
Karma: 10
Join Date: Apr 2010
Device: Nook
Observa.com.uy

This is my first recipe. It's for the uruguayan newspaper El Observador (Observa.com.uy) Don't know if this is of interest of someone but i share it just in case.

Code:
#!/usr/bin/env  python

__license__   = 'GPL v3'
__author__ = '2010, Yuri Alvarez<me at yurialvarez.com>'
__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net'
'''
observa.com.uy
'''

from calibre.web.feeds.news import BasicNewsRecipe

class ObservaDigital(BasicNewsRecipe):
    title                 = 'Observa Digital'
    description           = 'Noticias de Uruguay'
    language       = 'es'
    timefmt        = '[%a, %d %b, %Y]'
    use_embedded_content  = False
    recursion             = 5
    encoding = 'utf8'
    remove_javascript = True
    no_stylesheets = True

    oldest_article        = 2
    max_articles_per_feed = 100
    keep_only_tags = [dict(id=['contenido'])]
    remove_tags = [
                     dict(name='div', attrs={'id':'contenedorVinculadas'}),
	   	     dict(name='p', attrs={'id':'nota_firma'}),
		     dict(name=['object','link'])
                  ]

    extra_css = '''
                h1{font-family:Geneva, Arial, Helvetica, sans-serif;color:#154B7A;}
                h3{font-size: 14px;color:#999999; font-family:Geneva, Arial, Helvetica, sans-serif;font-weight: bold;}
                h2{color:#666666; font-family:Geneva, Arial, Helvetica, sans-serif;font-size:small;}
                p {font-family:Arial,Helvetica,sans-serif;}
                '''
    feeds = [
               (u'Actualidad', u'http://www.observa.com.uy/RSS/actualidad.xml'),
	       (u'Deportes', u'http://www.observa.com.uy/RSS/deportes.xml'),
   	       (u'Vida', u'http://www.observa.com.uy/RSS/vida.xml'),
	       (u'Ciencia y Tecnologia', u'http://www.observa.com.uy/RSS/ciencia.xml')
	    ]

    def get_cover_url(self):
	cover_url = None
        index = 'http://www.observa.com.uy/'
        soup = self.index_to_soup(index)
        for image in soup.findAll('img',alt=True):
           if image['alt'].startswith('Tapa El Observador'):
              return image['src'].rstrip('b.jpg') + '.jpg'
        return None

    def preprocess_html(self, soup):
        for item in soup.findAll(style=True):
            del item['style']
        return soup
yrvn is offline