#!/usr/bin/env python # -*- coding: utf-8 -*- __license__ = 'GPL v3' __copyright__ = '30 October 2010, Jordi Balcells based on an earlier recipe by Darko Miletic ' ''' elperiodico.cat ''' from calibre.web.feeds.news import BasicNewsRecipe from calibre.ebooks.BeautifulSoup import Tag class ElPeriodico_cat(BasicNewsRecipe): title = 'El Periodico de Catalunya' __author__ = 'Jordi Balcells/Darko Miletic' description = 'Noticies des de Catalunya' publisher = 'elperiodico.cat' category = 'news, politics, Spain, Catalunya' oldest_article = 2 max_articles_per_feed = 100 no_stylesheets = True use_embedded_content = False delay = 1 encoding = 'cp1252' language = 'ca' html2lrf_options = [ '--comment' , description , '--category' , category , '--publisher', publisher ] html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"' feeds = [(u'Portada', u'http://www.elperiodico.cat/ca/rss/rss_portada.xml'), (u'Internacional', u'http://www.elperiodico.cat/ca/rss/internacional/rss.xml'), (u'Societat', u'http://www.elperiodico.cat/ca/rss/societat/rss.xml'), (u'Ci\xe8ncia i tecnologia', u'http://www.elperiodico.cat/ca/rss/ciencia-i-tecnologia/rss.xml'), (u'Esports', u'http://www.elperiodico.cat/ca/rss/esports/rss.xml'), (u'Gent', u'http://www.elperiodico.cat/ca/rss/gent/rss.xml'), (u'Opini\xf3', u'http://www.elperiodico.cat/ca/rss/opinio/rss.xml'), (u'Pol\xedtica', u'http://www.elperiodico.cat/ca/rss/politica/rss.xml'), (u'Barcelona', u'http://www.elperiodico.cat/ca/rss/barcelona/rss.xml'), (u'Economia', u'http://www.elperiodico.cat/ca/rss/economia/rss.xml'), (u'Cultura i espectacles', u'http://www.elperiodico.cat/ca/rss/cultura-i-espectacles/rss.xml'), (u'Tele', u'http://www.elperiodico.cat/ca/rss/tele/rss.xml')] keep_only_tags = [dict(name='div', attrs={'class':'titularnoticia'}), dict(name='div', attrs={'class':'noticia_completa'})] remove_tags = [dict(name='div', attrs={'class':['opcionb','opcionb last','columna_noticia']}), dict(name='span', attrs={'class':'opcionesnoticia'}) ] def print_version(self, url): return url.replace('/default.asp?','/print.asp?') def preprocess_html(self, soup): mcharset = Tag(soup,'meta',[("http-equiv","Content-Type"),("content","text/html; charset=utf-8")]) soup.head.insert(0,mcharset) for item in soup.findAll(style=True): del item['style'] return soup