__license__ = 'GPL v3' __copyright__ = '2010-2011, Darko Miletic ' ''' foxnews.com ''' from calibre.web.feeds.news import BasicNewsRecipe class FoxNews(BasicNewsRecipe): title = 'FOX News' __author__ = 'Darko Miletic' description = 'Breaking News from FOX' publisher = 'FOXNews.com' category = 'news, breaking news, latest news, current news, world news, national news, USA' oldest_article = 2 max_articles_per_feed = 200 no_stylesheets = True encoding = 'utf8' use_embedded_content = False language = 'en' publication_type = 'newsportal' remove_empty_feeds = True extra_css = """ body{font-family: Arial,sans-serif } .caption{font-size: x-small} .author,.dateline{font-size: small} """ conversion_options = { 'comment' : description , 'tags' : category , 'publisher' : publisher , 'language' : language } remove_attributes = ['xmlns','lang'] remove_tags=[ dict(attrs={'class':['user-control','logo','ad-300x250','url-description']}) ,dict(name=['meta','base','link','iframe','object','embed']) ] keep_only_tags=[dict(attrs={'id':'article-print'})] remove_tags_after =dict(attrs={'class':'url-description'}) feeds = [ (u'Latest Headlines', u'http://feeds.foxnews.com/foxnews/latest' ) ,(u'National' , u'http://feeds.foxnews.com/foxnews/national' ) ,(u'World' , u'http://feeds.foxnews.com/foxnews/world' ) ,(u'Politics' , u'http://feeds.foxnews.com/foxnews/politics' ) ,(u'Business' , u'http://feeds.foxnews.com/foxnews/business' ) ,(u'SciTech' , u'http://feeds.foxnews.com/foxnews/scitech' ) ,(u'Health' , u'http://feeds.foxnews.com/foxnews/health' ) ,(u'Entertainment' , u'http://feeds.foxnews.com/foxnews/entertainment' ) ] def print_version(self, url): return url + 'print' def preprocess_html(self, soup): for item in soup.findAll(style=True): del item['style'] for item in soup.findAll('a'): limg = item.find('img') if item.string is not None: str = item.string item.replaceWith(str) else: if limg: item.name = 'div' item.attrs = [] else: str = self.tag_to_string(item) item.replaceWith(str) for item in soup.findAll('img'): if not item.has_key('alt'): item['alt'] = 'image' return soup