Vilon
28/09/2008, 14:21
-------------------------------------------------------------------------------------------------------------------------------------------------
pre-alfa v0.2
http://www.lectoreselectronicos.com/index.php?name=PNphpBB2&file=viewtopic&p=1925&high light=#1925
Listado de cambios:
- Mejoras de rendimiento
- Soporte FB2
-------------------------------------------------------------------------------------------------------------------------------------------------
Hola a todos.
Me he estado estoy días construyendo uno pequeño programilla que creo que es bastante útil para nuestros lectores electrónicos, y querría compartirlo con vosotros.
Se trata de una pequeña aplicación Java que a partir de una lista de feeds RSS se encarga de ir a recoger el texto completo de las noticias a la fuente de las mismas y exportar todo en un fichero html.
http://img254.imageshack.us/img254/1674/dscn0136ag4.th.jpg (http://img254.imageshack.us/my.php?image=dscn0136ag4.jpg)http://img254.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
De esta manera tenemos acceso al contenido completo de la noticia y no solo el resumen como se nos ofrece en la mayoría de WEB's.
Un ejemplo del diario la nueva España.
Texto original obtenido por un lector de feeds cualquiera:
Más de 300 montañeros veteranos pertenecientes a la Federación Asturiana de Montañismo, coincidiendo con el 50.º aniversario del grupo de montaña de San Claudio, realizarán una marcha por el centro urbano y rural de la localidad ovetense. La salida...
Artículo:
http://www.lne.es/secciones/noticia.jsp?pRef=2008092800_31_679832__Oviedo-veteranos-realizan-marcha-Claudio
Artículo completo obtenido con FullRSS_Reader:
Los veteranos realizan una marcha por San Claudio
2008-09-27T22:00:09Z
http://www.lne.es/secciones/noticia.jsp?pRef=2008092800_31_679832__Oviedo-veteranos-realizan-marcha-Claudio
Más de 300 montañeros veteranos pertenecientes a la Federación Asturiana de Montañismo, coincidiendo con el 50.º aniversario del grupo de montaña de San Claudio, realizarán una marcha por el centro urbano y rural de la localidad ovetense. La salida...
Más de 300 montañeros veteranos pertenecientes a la Federación Asturiana de Montañismo, coincidiendo con el 50.º aniversario del grupo de montaña de San Claudio, realizarán una marcha por el centro urbano y rural de la localidad ovetense. La salida será a las once de la mañana del centro social, y la duración estimada es de tres horas.
Los participantes recibirán por parte de la organización, de manera totalmente gratuita, una bolsa con provisiones como chocolate, bebidas energéticas, manzanas, o un bollo de chorizo, además de un diploma personalizado y un póster.
El programa os lo podéis descargar de aquí http://rapidshare.com/files/149094484/FullRSS_Reader.rar.html
Como funciona
Bueno es un versión muy básica y no tiene un entorno gráfico, pero solo hay que tocar un archivo de configuración que explico a continuación y ejecutar el archivo FullRSS_Reader.jar.
El archivo de configuración
En el archivo data.xml se encuentran los feeds que el programa consultará para obtener las noticias así como unos sencillos parámetros de configuración que hay que indicar para cada uno de ellos. En el zip se adjunta un ejemplo de este archivo configurado para varios sitios.
Paso a explicar que es cada una de las etiquetas de dicho archivo
<type> Tenia pensado usarlo en próximas versiones para clasificar los feeds por temáticas, de momento no tiene ningún significado...
<site> Indica un sitio WEB del que obtenemos los feeds hay que indicar 2 parámetros
name - nombre para el sitio
encoding - codificación que utiliza el sitio (suele ser UTF-8 o si no iso-8859-1) probáis y donde se os vean bien los acentos eñes...
Dentro de <site> se encuentran 3 etiquetas importantes que sirven al programa para saber que parte de los documentos html, en que se encuentran las noticias del sitio web en cuestión, tiene que procesar.
<htmlSeparatorTag> indica una etiqueta html única dentro de la cual se encuentra el texto de la noticia. Pongo un ejemplo para que se entienda mejor.
Supongamos que tenemos un sitio "ElOtroLado.net" solo tenemos que mirar el código fuente de una de sus noticias y mirar dentro de que etiqueta "característica" (es decir "UNICA" en el documento) se encuentra la noticia.
Así que miramos el código fuente de una de sus noticias y vemos algo como esto:
http://img261.imageshack.us/img261/2005/codigohtmlyf5.th.jpg (http://img261.imageshack.us/my.php?image=codigohtmlyf5.jpg)http://img261.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
Como se puede observar el texto de la noticia se encuentra dentro de la etiqueta <div class="content"> así que eso es lo que pondremos en <htmlSeparatorTag> PERO por problemas con los XML hemos de sustituir los caracteres < e > por {open} {close} respectivamente.
Quedaría así:
<site name="El Otro Lado" encoding="utf-8">
<htmlSeparatorTag>{open}div class="content"{close}</htmlSeparatorTag>
Un consejo: Hay que estar seguro que la etiqueta encierra lo mas ajustadamente posible el texto de la noticia para que al procesarla no nos devuelva texto no deseado.
<initString> y <endString> Vale, pero supongamos ahora que el texto de la noticia no se encuentra dentro de una etiqueta definida (por ejemplo esta dentro de varios <p> (o por hay suelto que hay gente muy marrana con el marcado HTML...). En este caso podemos delimitar dicho texto con 2 cadenas de texto características que encontremos en el código. Ejemplo
Vamos a Vandal.net y vemos que el código de una de sus noticias tiene esta pinta:
http://img254.imageshack.us/img254/664/codigohtml2bi3.th.jpg (http://img254.imageshack.us/my.php?image=codigohtml2bi3.jpg)http://img254.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
Como vemos el texto de la noticia no esta dentro de ninguna etiqueta que podamos identificar como "única" en cambio si que esta entre 2 cadenas de texto identificables y unicas ("<div class="textart" style="clear:left;">" y "function Enviar(tipo)")
Asi que en el archivo de configuración:
<site name="Vandal" encoding="iso-8859-1">
<initString>{open}div class="textart" style="clear:left;"{close}</initString>
<endString>function Enviar(tipo)</endString>
<channel> Indica los canales del sitio de los que queremos obtener noticias. Puede haber varios o solo uno.
De ellos hay que indicar el nombre y la dirección al archivo de feeds rss. Ejemplo: <channel name="Lo Más Leido" link="http://www.lne.es/elementosInt/rss/LoMas"/>
Ejemplo de archivo de configuración con varios sitios
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE root SYSTEM "data.dtd">
<root>
<type id="Videojuegos">
<site name="El Otro Lado" encoding="utf-8">
<htmlSeparatorTag>{open}div class="content"{close}</htmlSeparatorTag>
<channel name="EOL" link="http://www.elotrolado.net/feed.php?t=1"/>
</site>
<site name="Vandal" encoding="iso-8859-1">
<initString>{open}div class="textart" style="clear:left;"{close}</initString>
<endString>function Enviar(tipo)</endString>
<channel name="Vandal" link="http://www.vandal.net/cgi-bin/xml.cgi"/>
</site>
</type>
<type id="Periodicos">
<site name="La Nueva España" encoding="iso-8859-1">
<htmlSeparatorTag>{open}div id="noticia_texto" class="noticia_texto"{close}</htmlSeparatorTag>
<channel name="Oviedo" link="http://www.lne.es/elementosInt/rss/31"/>
<channel name="Lo Más Leido" link="http://www.lne.es/elementosInt/rss/LoMas"/>
<channel name="Sección al Minuto" link="http://www.lne.es/elementosInt/rss/AlMinuto"/>
<channel name="Sociedad y Cultura" link="http://www.lne.es/elementosInt/rss/46"/>
<channel name="Sucesos" link="http://www.lne.es/elementosInt/rss/47"/>
<channel name="Última Página" link="http://www.lne.es/elementosInt/rss/50"/>
</site>
<site name="El Pais" encoding="iso-8859-1">
<htmlSeparatorTag>{open}div class="info_complementa"{close}</htmlSeparatorTag>
<channel name="Cultura" link="http://www.ELPAIS.com/rss/rss_section.html?anchor=elpporcul"/>
<channel name="España" link="http://www.ELPAIS.com/rss/rss_section.html?anchor=elppornac"/>
</site>
</type>
<type id="Tecnologia">
<site name="Noticias3D" encoding="iso-8859-1">
<htmlSeparatorTag>{open}span id="intelliTXT"{close}</htmlSeparatorTag>
<channel name="Noticias3D" link="http://feed43.com/1358588145342036.xml"/>
</site>
</type>
</root>
Ejecutando...
Una vez tengáis listo el archivo de configuración con los feeds que os interesan no tenéis más que hacer doble clik en el archivo FullRSS_Reader.jar y esperar. Los archivos HTML de salida se sitúan el el directorio HTML_files de la aplicación.
El programa no avisa de cuando ha terminado(recordar que es una pre-alfa :D). Así que esperar a que los archivos dentro de la carpeta antes mencionada dejen de crecer... Dependiendo de los feeds que tengáis y las noticias que halla puede tardar un rato...
El resultado
Abierto con un navegador
http://img254.imageshack.us/img254/9553/resul1tm1.th.jpg (http://img254.imageshack.us/my.php?image=resul1tm1.jpg)http://img254.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
En un Papyre V3 (formato HTML)
http://img254.imageshack.us/img254/1674/dscn0136ag4.th.jpg (http://img254.imageshack.us/my.php?image=dscn0136ag4.jpg)http://img254.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
En un Papyre V3 (pasado a fb2 con book designer)
http://img254.imageshack.us/img254/5443/dscn0135zq3.th.jpg (http://img254.imageshack.us/my.php?image=dscn0135zq3.jpg)http://img254.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
http://img254.imageshack.us/img254/756/dscn0131pb1.th.jpg (http://img254.imageshack.us/my.php?image=dscn0131pb1.jpg)http://img254.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
Próximas actualizaciones Si veo que tiene algo de éxito...
- Exportar directamente a FB2
- Traer imágenes de las fuentes
- Entorno grafico para facilitar la configuración
- No descargar los feeds si no hay actualizaciones
- ...
Si queréis que os haga la configuración para un sitio concreto me lo pedís y sin problemas.
¡¡Admito sugerencias!!
Un saludo.
pre-alfa v0.2
http://www.lectoreselectronicos.com/index.php?name=PNphpBB2&file=viewtopic&p=1925&high light=#1925
Listado de cambios:
- Mejoras de rendimiento
- Soporte FB2
-------------------------------------------------------------------------------------------------------------------------------------------------
Hola a todos.
Me he estado estoy días construyendo uno pequeño programilla que creo que es bastante útil para nuestros lectores electrónicos, y querría compartirlo con vosotros.
Se trata de una pequeña aplicación Java que a partir de una lista de feeds RSS se encarga de ir a recoger el texto completo de las noticias a la fuente de las mismas y exportar todo en un fichero html.
http://img254.imageshack.us/img254/1674/dscn0136ag4.th.jpg (http://img254.imageshack.us/my.php?image=dscn0136ag4.jpg)http://img254.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
De esta manera tenemos acceso al contenido completo de la noticia y no solo el resumen como se nos ofrece en la mayoría de WEB's.
Un ejemplo del diario la nueva España.
Texto original obtenido por un lector de feeds cualquiera:
Más de 300 montañeros veteranos pertenecientes a la Federación Asturiana de Montañismo, coincidiendo con el 50.º aniversario del grupo de montaña de San Claudio, realizarán una marcha por el centro urbano y rural de la localidad ovetense. La salida...
Artículo:
http://www.lne.es/secciones/noticia.jsp?pRef=2008092800_31_679832__Oviedo-veteranos-realizan-marcha-Claudio
Artículo completo obtenido con FullRSS_Reader:
Los veteranos realizan una marcha por San Claudio
2008-09-27T22:00:09Z
http://www.lne.es/secciones/noticia.jsp?pRef=2008092800_31_679832__Oviedo-veteranos-realizan-marcha-Claudio
Más de 300 montañeros veteranos pertenecientes a la Federación Asturiana de Montañismo, coincidiendo con el 50.º aniversario del grupo de montaña de San Claudio, realizarán una marcha por el centro urbano y rural de la localidad ovetense. La salida...
Más de 300 montañeros veteranos pertenecientes a la Federación Asturiana de Montañismo, coincidiendo con el 50.º aniversario del grupo de montaña de San Claudio, realizarán una marcha por el centro urbano y rural de la localidad ovetense. La salida será a las once de la mañana del centro social, y la duración estimada es de tres horas.
Los participantes recibirán por parte de la organización, de manera totalmente gratuita, una bolsa con provisiones como chocolate, bebidas energéticas, manzanas, o un bollo de chorizo, además de un diploma personalizado y un póster.
El programa os lo podéis descargar de aquí http://rapidshare.com/files/149094484/FullRSS_Reader.rar.html
Como funciona
Bueno es un versión muy básica y no tiene un entorno gráfico, pero solo hay que tocar un archivo de configuración que explico a continuación y ejecutar el archivo FullRSS_Reader.jar.
El archivo de configuración
En el archivo data.xml se encuentran los feeds que el programa consultará para obtener las noticias así como unos sencillos parámetros de configuración que hay que indicar para cada uno de ellos. En el zip se adjunta un ejemplo de este archivo configurado para varios sitios.
Paso a explicar que es cada una de las etiquetas de dicho archivo
<type> Tenia pensado usarlo en próximas versiones para clasificar los feeds por temáticas, de momento no tiene ningún significado...
<site> Indica un sitio WEB del que obtenemos los feeds hay que indicar 2 parámetros
name - nombre para el sitio
encoding - codificación que utiliza el sitio (suele ser UTF-8 o si no iso-8859-1) probáis y donde se os vean bien los acentos eñes...
Dentro de <site> se encuentran 3 etiquetas importantes que sirven al programa para saber que parte de los documentos html, en que se encuentran las noticias del sitio web en cuestión, tiene que procesar.
<htmlSeparatorTag> indica una etiqueta html única dentro de la cual se encuentra el texto de la noticia. Pongo un ejemplo para que se entienda mejor.
Supongamos que tenemos un sitio "ElOtroLado.net" solo tenemos que mirar el código fuente de una de sus noticias y mirar dentro de que etiqueta "característica" (es decir "UNICA" en el documento) se encuentra la noticia.
Así que miramos el código fuente de una de sus noticias y vemos algo como esto:
http://img261.imageshack.us/img261/2005/codigohtmlyf5.th.jpg (http://img261.imageshack.us/my.php?image=codigohtmlyf5.jpg)http://img261.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
Como se puede observar el texto de la noticia se encuentra dentro de la etiqueta <div class="content"> así que eso es lo que pondremos en <htmlSeparatorTag> PERO por problemas con los XML hemos de sustituir los caracteres < e > por {open} {close} respectivamente.
Quedaría así:
<site name="El Otro Lado" encoding="utf-8">
<htmlSeparatorTag>{open}div class="content"{close}</htmlSeparatorTag>
Un consejo: Hay que estar seguro que la etiqueta encierra lo mas ajustadamente posible el texto de la noticia para que al procesarla no nos devuelva texto no deseado.
<initString> y <endString> Vale, pero supongamos ahora que el texto de la noticia no se encuentra dentro de una etiqueta definida (por ejemplo esta dentro de varios <p> (o por hay suelto que hay gente muy marrana con el marcado HTML...). En este caso podemos delimitar dicho texto con 2 cadenas de texto características que encontremos en el código. Ejemplo
Vamos a Vandal.net y vemos que el código de una de sus noticias tiene esta pinta:
http://img254.imageshack.us/img254/664/codigohtml2bi3.th.jpg (http://img254.imageshack.us/my.php?image=codigohtml2bi3.jpg)http://img254.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
Como vemos el texto de la noticia no esta dentro de ninguna etiqueta que podamos identificar como "única" en cambio si que esta entre 2 cadenas de texto identificables y unicas ("<div class="textart" style="clear:left;">" y "function Enviar(tipo)")
Asi que en el archivo de configuración:
<site name="Vandal" encoding="iso-8859-1">
<initString>{open}div class="textart" style="clear:left;"{close}</initString>
<endString>function Enviar(tipo)</endString>
<channel> Indica los canales del sitio de los que queremos obtener noticias. Puede haber varios o solo uno.
De ellos hay que indicar el nombre y la dirección al archivo de feeds rss. Ejemplo: <channel name="Lo Más Leido" link="http://www.lne.es/elementosInt/rss/LoMas"/>
Ejemplo de archivo de configuración con varios sitios
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE root SYSTEM "data.dtd">
<root>
<type id="Videojuegos">
<site name="El Otro Lado" encoding="utf-8">
<htmlSeparatorTag>{open}div class="content"{close}</htmlSeparatorTag>
<channel name="EOL" link="http://www.elotrolado.net/feed.php?t=1"/>
</site>
<site name="Vandal" encoding="iso-8859-1">
<initString>{open}div class="textart" style="clear:left;"{close}</initString>
<endString>function Enviar(tipo)</endString>
<channel name="Vandal" link="http://www.vandal.net/cgi-bin/xml.cgi"/>
</site>
</type>
<type id="Periodicos">
<site name="La Nueva España" encoding="iso-8859-1">
<htmlSeparatorTag>{open}div id="noticia_texto" class="noticia_texto"{close}</htmlSeparatorTag>
<channel name="Oviedo" link="http://www.lne.es/elementosInt/rss/31"/>
<channel name="Lo Más Leido" link="http://www.lne.es/elementosInt/rss/LoMas"/>
<channel name="Sección al Minuto" link="http://www.lne.es/elementosInt/rss/AlMinuto"/>
<channel name="Sociedad y Cultura" link="http://www.lne.es/elementosInt/rss/46"/>
<channel name="Sucesos" link="http://www.lne.es/elementosInt/rss/47"/>
<channel name="Última Página" link="http://www.lne.es/elementosInt/rss/50"/>
</site>
<site name="El Pais" encoding="iso-8859-1">
<htmlSeparatorTag>{open}div class="info_complementa"{close}</htmlSeparatorTag>
<channel name="Cultura" link="http://www.ELPAIS.com/rss/rss_section.html?anchor=elpporcul"/>
<channel name="España" link="http://www.ELPAIS.com/rss/rss_section.html?anchor=elppornac"/>
</site>
</type>
<type id="Tecnologia">
<site name="Noticias3D" encoding="iso-8859-1">
<htmlSeparatorTag>{open}span id="intelliTXT"{close}</htmlSeparatorTag>
<channel name="Noticias3D" link="http://feed43.com/1358588145342036.xml"/>
</site>
</type>
</root>
Ejecutando...
Una vez tengáis listo el archivo de configuración con los feeds que os interesan no tenéis más que hacer doble clik en el archivo FullRSS_Reader.jar y esperar. Los archivos HTML de salida se sitúan el el directorio HTML_files de la aplicación.
El programa no avisa de cuando ha terminado(recordar que es una pre-alfa :D). Así que esperar a que los archivos dentro de la carpeta antes mencionada dejen de crecer... Dependiendo de los feeds que tengáis y las noticias que halla puede tardar un rato...
El resultado
Abierto con un navegador
http://img254.imageshack.us/img254/9553/resul1tm1.th.jpg (http://img254.imageshack.us/my.php?image=resul1tm1.jpg)http://img254.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
En un Papyre V3 (formato HTML)
http://img254.imageshack.us/img254/1674/dscn0136ag4.th.jpg (http://img254.imageshack.us/my.php?image=dscn0136ag4.jpg)http://img254.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
En un Papyre V3 (pasado a fb2 con book designer)
http://img254.imageshack.us/img254/5443/dscn0135zq3.th.jpg (http://img254.imageshack.us/my.php?image=dscn0135zq3.jpg)http://img254.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
http://img254.imageshack.us/img254/756/dscn0131pb1.th.jpg (http://img254.imageshack.us/my.php?image=dscn0131pb1.jpg)http://img254.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
Próximas actualizaciones Si veo que tiene algo de éxito...
- Exportar directamente a FB2
- Traer imágenes de las fuentes
- Entorno grafico para facilitar la configuración
- No descargar los feeds si no hay actualizaciones
- ...
Si queréis que os haga la configuración para un sitio concreto me lo pedís y sin problemas.
¡¡Admito sugerencias!!
Un saludo.