Quantcast
Channel: MobileRead Forums - Calibre
Viewing all articles
Browse latest Browse all 31483

Sun UK Update 20/2/12

$
0
0
recipe update - new links fetching more articles.
Todays edition produced a 8.5mb mobi. If it's too big reduce max articles or comment out feeds.

Spoiler:


Code:

import urllib, re
from calibre.web.feeds.recipes import BasicNewsRecipe
from calibre import __appname__
from calibre.utils.magick import Image, PixelWand
class AdvancedUserRecipe1325006965(BasicNewsRecipe):

    title          = u'The Sun UK'
    cover_url = 'http://www.thesun.co.uk/img/global/new-masthead-logo.png'
   
    description = 'A Recipe for The Sun tabloid UK - uses feed43
    __author__ = 'Dave Asbury'
    # last updated 20/2/12
    language = 'en_GB'
    oldest_article = 1
    max_articles_per_feed = 15
    remove_empty_feeds = True
    no_stylesheets = True
    #auto_cleanup = True
    #articles_are_obfuscated = True

    masthead_url = 'http://www.thesun.co.uk/sol/img/global/Sun-logo.gif'
    encoding = 'cp1251'
   
    encoding = 'cp1252'
    remove_empty_feeds = True
    remove_javascript    = True
    no_stylesheets = True
   
    extra_css  = '''
        body{ text-align: justify; font-family:Arial,Helvetica,sans-serif; font-size:11px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:normal;}
                        '''
   
    preprocess_regexps = [
            (re.compile(r'<div class="foot-copyright".*?</div>', re.IGNORECASE | re.DOTALL), lambda match: '')]
   
     
 
    keep_only_tags = [
                              dict(name='h1'),dict(name='h2',attrs={'class' : 'medium centered'}),
                  dict(name='div',attrs={'class' : 'text-center'}),
                  dict(name='div',attrs={'id' : 'bodyText'})
                  # dict(name='p')
                  ]
    remove_tags=[
              #dict(name='head'),
              dict(attrs={'class' : ['mystery-meat-link','ltbx-container','ltbx-var ltbx-hbxpn','ltbx-var ltbx-nav-loop','ltbx-var ltbx-url']}),
                          dict(name='div',attrs={'class' : 'cf'}),
              dict(attrs={'title' : 'download flash'}),
                          dict(attrs={'style' : 'padding: 5px'})
             
              ]

       
    feeds          = [
        #(u'News', u'http://feed43.com/8203386003128155.xml'),
        (u'News','http://feed43.com/2517447382644748.xml'),
        (u'Sport', u'http://feed43.com/4283846255668687.xml'),
        (u'Bizarre', u'http://feed43.com/0233840304242011.xml'),
        (u'Film',u'http://feed43.com/1307545221226200.xml'),
                (u'Music',u'http://feed43.com/1701513435064132.xml'),
        (u'Sun Woman',u'http://feed43.com/0022626854226453.xml'),
]
    def postprocess_html(self, soup, first):
        #process all the images
        for tag in soup.findAll(lambda tag: tag.name.lower()=='img' and tag.has_key('src')):
            iurl = tag['src']
            img = Image()
            img.open(iurl)
            if img < 0:
                raise RuntimeError('Out of memory')
            img.type = "GrayscaleType"
            img.save(iurl)
        return soup
#http://www.bbc.co.uk/midlandstoday/content/images/2007/11/09/autumnwatch_203_203x152.jpg



Text Only version (same news 300k file)

Spoiler:
Code:


import urllib, re
from calibre.web.feeds.recipes import BasicNewsRecipe
from calibre import __appname__
from calibre.utils.magick import Image, PixelWand
class AdvancedUserRecipe1325006965(BasicNewsRecipe):

    title          = u'The Sun UK - Text only'
    cover_url = 'http://www.thesun.co.uk/img/global/new-masthead-logo.png'
   
    description = 'A Recipe for The Sun tabloid UK using feed43'
    __author__ = 'Dave Asbury'
    # last updated 20/2/12
    language = 'en_GB'
    oldest_article = 1
    max_articles_per_feed = 15
    remove_empty_feeds = True
    no_stylesheets = True
    #auto_cleanup = True
    #articles_are_obfuscated = True

    masthead_url = 'http://www.thesun.co.uk/sol/img/global/Sun-logo.gif'
    encoding = 'cp1251'
   
    encoding = 'cp1252'
    remove_empty_feeds = True
    remove_javascript    = True
    no_stylesheets = True
   
    extra_css  = '''
        body{ text-align: justify; font-family:Arial,Helvetica,sans-serif; font-size:11px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:normal;}
                        '''
   
    preprocess_regexps = [
            (re.compile(r'<div class="foot-copyright".*?</div>', re.IGNORECASE | re.DOTALL), lambda match: '')]
    preprocess_regexps = [    (re.compile(r'<img src=.*?/>', re.IGNORECASE | re.DOTALL), lambda match: '')]
   
     
 
    keep_only_tags = [
                              dict(name='h1'),dict(name='h2',attrs={'class' : 'medium centered'}),
                  dict(name='div',attrs={'class' : 'text-center'}),
                  dict(name='div',attrs={'id' : 'bodyText'})
                  # dict(name='p')
                  ]
    remove_tags=[
              #dict(name='head'),
                               
              dict(attrs={'class' : ['mystery-meat-link','ltbx-container','ltbx-var ltbx-hbxpn','ltbx-var ltbx-nav-loop','ltbx-var ltbx-url']}),
                                dict(name='div',attrs={'class' : 'cf'}),
              dict(attrs={'title' : 'download flash'}),
                                  dict(attrs={'style' : 'padding: 5px'})
             
              ]

       
    feeds          = [
        #(u'News', u'http://feed43.com/8203386003128155.xml'),
        (u'News','http://feed43.com/2517447382644748.xml'),
        (u'Sport', u'http://feed43.com/4283846255668687.xml'),
        (u'Bizarre', u'http://feed43.com/0233840304242011.xml'),
        (u'Film',u'http://feed43.com/1307545221226200.xml'),
                (u'Music',u'http://feed43.com/1701513435064132.xml'),
        (u'Sun Woman',u'http://feed43.com/0022626854226453.xml'),
]


Viewing all articles
Browse latest Browse all 31483

Trending Articles