__license__ = 'GPL v3' __copyright__ = '2009-2011, Darko Miletic ' ''' elmundo.es ''' import re import time from calibre.web.feeds.news import BasicNewsRecipe class ElMundo(BasicNewsRecipe): title = 'El Mundo' __author__ = 'Darko Miletic' description = 'Lider de informacion en espaniol' publisher = 'Unidad Editorial Informacion General S.L.U.' category = 'news, politics, Spain' oldest_article = 2 max_articles_per_feed = 100 no_stylesheets = True use_embedded_content = False encoding = 'iso8859_15' remove_javascript = True remove_empty_feeds = True language = 'es' masthead_url = 'http://estaticos03.elmundo.es/elmundo/iconos/v4.x/v4.01/bg_h1.png' publication_type = 'newspaper' extra_css = """ body{font-family: Arial,Helvetica,sans-serif} .metadata_noticia{font-size: small} .pestana_GDP{font-size: small; font-weight:bold} h1,h2,h3,h4,h5,h6,.subtitulo {color: #3F5974} .hora{color: red} .update{color: gray} """ conversion_options = { 'comments' : description ,'tags' : category ,'language' : language ,'publisher' : publisher } keep_only_tags = [dict(name='div', attrs={'class':'noticia'})] remove_tags_before = dict(attrs={'class':['titular','antetitulo'] }) remove_tags_after = dict(name='div' , attrs={'id':['desarrollo_noticia','tamano']}) remove_attributes = ['lang','border'] remove_tags = [ dict(name='div', attrs={'class':['herramientas','publicidad_google','comenta','col col-2b','apoyos','no-te-pierdas']}) ,dict(name='div', attrs={'class':['publicidad publicidad_cuerpo_noticia','comentarios_nav','mensaje_privado','interact']}) ,dict(name='div', attrs={'class':['num_comentarios estirar']}) ,dict(name='span', attrs={'class':['links_comentar']}) ,dict(name='div', attrs={'id':['comentar']}) ,dict(name='ul', attrs={'class':'herramientas' }) ,dict(name=['object','link','embed','iframe','base','meta']) ] feeds = [ (u'Portada' , u'http://estaticos.elmundo.es/elmundo/rss/portada.xml' ) ,(u'Deportes' , u'http://estaticos.elmundo.es/elmundodeporte/rss/portada.xml') ,(u'Econom\xeda' , u'http://estaticos.elmundo.es/elmundo/rss/economia.xml' ) ,(u'Espa\xf1a' , u'http://estaticos.elmundo.es/elmundo/rss/espana.xml' ) ,(u'Internacional' , u'http://estaticos.elmundo.es/elmundo/rss/internacional.xml' ) ,(u'Cultura' , u'http://estaticos.elmundo.es/elmundo/rss/cultura.xml' ) ,(u'Ciencia/Ecolog\xeda', u'http://estaticos.elmundo.es/elmundo/rss/ciencia.xml' ) ,(u'Comunicaci\xf3n' , u'http://estaticos.elmundo.es/elmundo/rss/comunicacion.xml' ) ,(u'Televisi\xf3n' , u'http://estaticos.elmundo.es/elmundo/rss/television.xml' ) ,(u'Salud' , u'http://estaticos.elmundo.es/elmundosalud/rss/portada.xml' ) ,(u'Solidaridad' , u'http://estaticos.elmundo.es/elmundo/rss/solidaridad.xml' ) ,(u'Su vivienda' , u'http://estaticos.elmundo.es/elmundo/rss/suvivienda.xml' ) ,(u'Motor' , u'http://estaticos.elmundo.es/elmundomotor/rss/portada.xml' ) ,(u'Madrid' , u'http://estaticos.elmundo.es/elmundo/rss/madrid.xml' ) ,(u'Barcelona' , u'http://estaticos.elmundo.es/elmundo/rss/barcelona.xml' ) ,(u'Pa\xeds Vasco' , u'http://estaticos.elmundo.es/elmundo/rss/paisvasco.xml' ) ,(u'Baleares' , u'http://estaticos.elmundo.es/elmundo/rss/baleares.xml' ) ,(u'Castilla y Le\xf3n' , u'http://estaticos.elmundo.es/elmundo/rss/castillayleon.xml' ) ,(u'Valladolid' , u'http://estaticos.elmundo.es/elmundo/rss/valladolid.xml' ) ,(u'Valencia' , u'http://estaticos.elmundo.es/elmundo/rss/valencia.xml' ) ,(u'Alicante' , u'http://estaticos.elmundo.es/elmundo/rss/alicante.xml' ) ,(u'Castell\xf3n' , u'http://estaticos.elmundo.es/elmundo/rss/castellon.xml' ) ,(u'Andaluc\xeda' , u'http://estaticos.elmundo.es/elmundo/rss/andalucia.xml' ) ,(u'Sevilla' , u'http://estaticos.elmundo.es/elmundo/rss/andalucia_sevilla.xml' ) ,(u'M\xe1laga' , u'http://estaticos.elmundo.es/elmundo/rss/andalucia_malaga.xml' ) ] def preprocess_html(self, soup): for item in soup.findAll(style=True): del item['style'] return soup def get_article_url(self, article): return article.get('guid', None) preprocess_regexps = [ # Para presentar la imagen de los videos incrustados (re.compile(r'var imagen', re.DOTALL|re.IGNORECASE), lambda match: '-->'), (re.compile(r'var video=', re.DOTALL|re.IGNORECASE), lambda match: '