from calibre.web.feeds.recipes import BasicNewsRecipe class AdvancedUserRecipe1303841067(BasicNewsRecipe): title = u'Golem.de' __author__ = 'schuster' oldest_article = 7 max_articles_per_feed = 10 no_stylesheets = True use_embedded_content = False language = 'de' cover_url = 'http://www.e-energy.de/images/logo_golem.jpg' masthead_url = 'http://www.golem.de/staticrl/images/logo.png' extra_css = ''' h2{font-family:Arial,Helvetica,sans-serif; font-size: x-small;} h1{ font-family:Arial,Helvetica,sans-serif; font-size:x-large; font-weight:bold;} ''' remove_javascript = True remove_tags_befor = [ dict(name='header', attrs={'class': 'cluster-header'})] remove_tags_after = [dict(name='p', attrs={'class': 'meta'})] remove_tags = [dict(rel='nofollow'), dict(name='header', attrs={'id': 'header'}), dict(name='div', attrs={'class': 'dh1'}), dict(name='label', attrs={'class': 'implied'}), dict(name='section', attrs={'id': 'comments'}), dict(name='li', attrs={'class': 'gg_prebackcounterItem'}), dict(name='li', attrs={ 'class': 'gg_prebackcounterItem gg_embeddedIndexCounter'}), dict(name='img', attrs={ 'class': 'gg_embeddedIconRight gg_embeddedIconFS gg_cursorpointer'}), dict(name='div', attrs={'target': '_blank'}) ] def get_browser(self, *args, **kwargs): from calibre import browser kwargs['user_agent'] = 'mozilla' return browser(*args, **kwargs) def get_article_url(self, article): return article.get('id', article.get('guid', None)) def preprocess_html(self, soup): for alink in soup.findAll('a'): if alink.string is not None: tstr = alink.string alink.replaceWith(tstr) return soup feeds = [(u'Audio/Video', u'http://rss.golem.de/rss.php?tp=av&feed=RSS2.0'), (u'Foto', u'http://rss.golem.de/rss.php?tp=foto&feed=RSS2.0'), (u'Games', u'http://rss.golem.de/rss.php?tp=games&feed=RSS2.0'), (u'Handy', u'http://rss.golem.de/rss.php?tp=handy&feed=RSS2.0'), (u'Internet', u'http://rss.golem.de/rss.php?tp=inet&feed=RSS2.0'), (u'Mobile', u'http://rss.golem.de/rss.php?tp=mc&feed=RSS2.0'), (u'OSS', u'http://rss.golem.de/rss.php?tp=oss&feed=RSS2.0'), (u'Politik/Recht', u'http://rss.golem.de/rss.php?tp=pol&feed=RSS2.0'), (u'Security', u'http://rss.golem.de/rss.php?tp=sec&feed=RSS2.0'), (u'Desktop-Applikationen', u'http://rss.golem.de/rss.php?tp=apps&feed=RSS2.0'), (u'Software-Entwicklung', u'http://rss.golem.de/rss.php?tp=dev&feed=RSS2.0'), (u'Wirtschaft', u'http://rss.golem.de/rss.php?tp=wirtschaft&feed=RSS2.0'), (u'Hardware', u'http://rss.golem.de/rss.php?r=hw&feed=RSS2.0'), (u'Software', u'http://rss.golem.de/rss.php?r=sw&feed=RSS2.0'), (u'Networld', u'http://rss.golem.de/rss.php?r=nw&feed=RSS2.0'), (u'Entertainment', u'http://rss.golem.de/rss.php?r=et&feed=RSS2.0'), (u'TK', u'http://rss.golem.de/rss.php?r=tk&feed=RSS2.0'), (u'Wirtschaft', u'http://rss.golem.de/rss.php?r=wi&feed=RSS2.0'), (u'E-Commerce', u'http://rss.golem.de/rss.php?r=ec&feed=RSS2.0') ]