Para llevar un poquito más allá nuestras recetas podemos incluir pequeños trozos de código en ellas que las mejorarán sensiblemente.
Esta es una receta básica
Código:
class AdvancedUserRecipe1294492627(BasicNewsRecipe):
title = u'Fuente de noticias desconocida'
oldest_article = 7
max_articles_per_feed = 100
feeds = []
en ella podemos incluir:
Código:
encoding ='latin'
Forzará a que lea la página con la codificación "latin" en vez de la estándar en calibre.
Código:
remove_javascript =True
Este trozo retira el javascript que pudiera estar en medio del código.
Código:
no_stylesheets =True
Impide que se aplique la hoja de estilos de la página. Agiliza mucho el procesado de las noticias.
Código:
extra_css ='h1 {margin-bottom: .15em;font-size: 2.7em; font-family: Georgia, "Times New Roman", Times, serif;} .Antetitulo {margin: 1em 0;text-transform: uppercase;color: #999;} .PieFoto {margin: .1em 0;padding: .5em .5em .5em .5em;background: #F0F0F0;}'
Añadimos nuestra propia hoja de estilo.
Y ahora unos trozos de código que hacen maravillas:
Código:
keep_only_tags =dict(name='div', attrs={'class':['noticia primer_elemento']})
Este trozo de código filtra toda la página y selecciona, en este caso los div con class noticia, y class primer_elemento. Los div que están fuera de estas clases quedan descartados. Para saber con que bloques quedarme yo uso una herramienta de chromiun que es inspeccionar elemento. Pinchando sobre la pagina con el botón derecho se abre un menú y encontramos esta herramienta.
Tiene este aspecto:
Uploaded with ImageShack.us
Uploaded with ImageShack.us
Uploaded with ImageShack.us
Como se ve al pasar el ratón sobre la estructura inferior se van sombreando las distintas partes de la página afectadas.
Código:
remove_tags =[
dict(name='div', attrs={'class':['compartir', 'metadata_desarrollo_noticia', 'relacionadas', 'mas_info','publicidad publicidad_textlink', 'ampliarfoto']}),
dict(name='ul', attrs={'class':['bolos_desarrollo_noticia']}),
]
En este caso le pedimos que retire esas secciones.
[
Uploaded with ImageShack.us
La construcción de estos dos últimos trozos de código puede parecer un poco complicado pero se construye siempre igual:
- Todos los trozos que pretendamos ver afectados van entre corchetes []
- Cada agrupación de trozos similares va dentro de un diccionario que se genera empezando con dict, y entre paréntesis el nombre del trozo, que bien puede ser el genérico div, como p, ul, o cualquier otro. Tras indicar el nombre, indicamos sus atributos (lo que identificará el trozo en concreto) que bien puede ser class, o id y tras un par de puntos ":" abrimos unos corchetes para agrupar todas las clases que queramos (claro está si también son del mismo tipo de trozo, es decir, si son todos div, o p, o ul...)
- Los distintos diccionarios van separados por comas
Y con estos detalles podemos mejorar un poquito nuestras recetas. Espero que sea de utilidad y no haya resultado muy larga la explicación