Archivo

Entradas Etiquetadas ‘globovision’

Globovision al fin se decidió a poner RSS!

Domingo, 23 de Noviembre de 2008

Si, después de tanto tiempo Globovisión se decidió hacerle un cariñito a su website poniendole RSS; No todo es perfecto, por ejemplo el enlace de los Blogs muestra el siguiente error:

Notice: Uninitialized string offset: 0 in /web_app/www/globo_core2/blogs.inc.php on line 20

Pero bueno, al menos ya no toca escribir nuestros propios parsers para bajar las noticias. Supongo que en algún momento corregiran los errores en su sitio web :)

Buscar en otros sitios:

Blogalaxia:, , ,
Technorati:, , ,
To2blogs:, , ,
Del.icio.us:, , ,

java, kodegeek , , ,

Cerrando el RSS de Globovision, no vale la pena contentar a sus usuarios

Martes, 3 de Junio de 2008

Bueno,

Así que después de tener errores una y otra vez y de comprobar que mi aplicación aún funcionaba desde otros servidores, y que mi proveedor de hospedaje no me estaba bloqueando (después de lidiar con ellos durante 3 días ya que se me ocurrió la brillante idea de hospedar el blog con una cuenta sin acceso directo al shell) me decidí a contactarlos directamente y preguntar que pasaba:

Saludos cordiales,

Desde hace tiempo que disfruto de su sitio web y sus noticias, sin embargo noté que su sitio web no ofrece el formato RSS (el cual permite suscripción a sus titulares cada vez que hay actualización) y por ello escribí un programa el cual muestra el contenido del mismo en ese formato:

http://kodegeek.com/2009/03/rss-de-globovision-est-roto-ii-java-al.shtml

Sin embargo desde el día de ayer dicho programa está siendo bloqueado en su sitio web y me pregunto si es posible que el acceso a la página pueda ser re-establecido o si alguien puede trabajar conmigo para verificar que es lo que está mal.

Muchas gracias de antemano.

José Vicente Núñez Zuleta, Kodegeek.com

Desgraciadamente nunca obtuve respuesta. Así, ¿que puede hacerse en estos casos?

La solución técnica es fácil saltarse este tipo de restricciones (usando ‘proxiescon http y re-escribiendo el ‘user agent’ del código cada vez que me conecto), así que ni corto ni perezoso le agregué esa funcionalidad a mi programa:

/usr/java/jdk1.5.0_01/bin/java -DproxySet=true -DproxyHost=XXX.ZZZ.YYY -DproxyPort=8080 -DUser-Agent “Kodegeek1.0/Es Hora de que escriban un RSS” -classpath /home/kodeg2/jars/RSS-1.0.jar:/home/kodeg2/jars/jdom.jar:/home/kodeg2/jars/rome-0.9.jar:. com.kodegeek.blog.rss.GlobovisionHtml2Rss /home/kodeg2/public_html/rss/globovision.rss

Además de ponerle esta nueva línea de código:

URLConnection connection = globovisionURL.openConnection();
connection.setRequestProperty(“User-Agent”, System.getProperty(“User-Agent”, USER_AGENT));
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));

Probé todo esto en 10 minutos. Básicamente ahora me conecto desde diferentes direcciones IP simulando diferentes navegadores. No es perfecto y aún puede ser bloqueado, sin embargo estos cambios van a requerir que ellos hagan más cambios, lo cual me lleva al siguiente punto:

¿No es más fácil programar un RSS en Globovisión para luego dárselo a sus usuarios que bloquear mi programa (a estas alturas sólo puedo asumir eso)?

Sin embargo no vale la pena el esfuerzo, al menos de mi parte. Es decir, si en vez de mejorar el producto lo que quieren hacer es alienar a sus usuarios entonces simplemente se leen las noticias en otro sitio y listo, sin más complicaciones (el Universal.com ofrece noticias de Venezuela con RSS desde hace años. Bueno, ellos fueron los pioneros en Venezuela así que no soprende mucho).

Así que a mis queridos lectores por ahora no pienso seguir ofreciendo el RSS de Globovision. Si piensan que mi programa es útil entonces envienles un correo electronico, pidiéndoles que desbloqueen a KodeGeek o mejor aún que implementen un RSS (¿habrán escuchado de web 2.0?)

En fin, los dejo con algunas memorias las cuales me recordaron lo divertido que fué trabajar en esto. Yo por ahora tengo otras ideas las cuales les quiero mostrar en el blog, ninguna de ellas asociadas a los riesgos de web scrapping :D

Buscar en otros sitios:

Blogalaxia:, , , , ,
Technorati:, , , , ,
To2blogs:, , , , ,
Del.icio.us:, , , , ,

java, kodegeek , , , , ,

Problemas con el RSS de Globovision

Viernes, 30 de Mayo de 2008

No estoy seguro porqué pero no tengo tiempo hoy para acomodarlo:

May 30, 2008 3:10:03 AM com.kodegeek.blog.rss.GlobovisionHtml2Rss mainSEVERE: Cannot recover from this exceptionjava.lang.Exception: Unexpected problem  at com.kodegeek.blog.rss.GlobovisionHtml2Rss.fetch(GlobovisionHtml2Rss.java:98)  at com.kodegeek.blog.rss.GlobovisionHtml2Rss.main(GlobovisionHtml2Rss.java:62)Caused by: java.net.ConnectException: Connection refused  at java.net.PlainSocketImpl.socketConnect(Native Method)  at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)  at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)  at java.net.Socket.connect(Socket.java:507)  at java.net.Socket.connect(Socket.java:457)  at sun.net.NetworkClient.doConnect(NetworkClient.java:157)  at sun.net.www.http.HttpClient.openServer(HttpClient.java:365)  at sun.net.www.http.HttpClient.openServer(HttpClient.java:477)  at sun.net.www.http.HttpClient.(HttpClient.java:214)  at sun.net.www.http.HttpClient.New(HttpClient.java:287)  at sun.net.www.http.HttpClient.New(HttpClient.java:299)  at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:784)  at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:736)  at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:661)  at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:905)  at java.net.URL.openStream(URL.java:1007)  at com.kodegeek.blog.rss.GlobovisionHtml2Rss.fetch(GlobovisionHtml2Rss.java:88)

Asi que a quienes están suscritos el servicio, paciencia, ya veré porqué no está feliz :)

Blogalaxia:,
Technorati:,
To2blogs:,
Del.icio.us:,

Buscar en otros sitios:

Sin categoría ,

Mejoras al RSS de Globovision

Sábado, 29 de Marzo de 2008

Bueno, he estado MUY ocupado debido a lo movido que ha estado el mercado de opciones estas últimas 3 semanas (incluyendo la caida estrepitosa de Bearn Sterns). Sin embargo hoy corregí un par de errores en el archivo de Ant y al fin monté la primera versión en Java del convertido de HTML a RSS de Globovisión (en un articulo anterior les mostraba el código y porqué me decidí a escribirlo).

La versión de Perl quedará en la historia :)

Buscar en otros sitios:

Blogalaxia:, , ,
Technorati:, , ,
To2blogs:, , ,
Del.icio.us:, , ,

java , , ,

Convertidor de HTML a RSS para las noticias de Globovisión.

Domingo, 14 de Octubre de 2007

Siguiendo con la fiebre de los Mashups hechos con Yahoo Pipes, llegué al punto en que decidí escribir un convertidor de HTML a RSS para Globovision. Como recordaran, Globovision no ofrece un feed RSS de sus noticias nacionales, lo cual es una verdadera lastima.

Asi que con un poco de imaginación decidí escribir este programa en Perl:

 1 #!/usr/bin/perl 2 3 use strict; 4 use LWP::UserAgent; 5 use HTML::Parser; 6 use XML::RSS; 7 8 my $rss = XML::RSS->new( version => '0.9' ); 910 my $rssFile = "$ENV{HOME}/globovision.rss";1112 $rss->channel(13  title        => "Globovision.com Venezuelan News",14  link         => "http://globovision.com/",15  description  => "Globovision.com news -Brough to you by http://KodeGeek.com");1617 # Be carefull with this one as nested elements can be ignored and18 # HTML normally is not well formed!19 my @ignore_tags = (20  "head",21  "h1",22  "strong",23  "form"24    );2526 my $baseUrl = "http://globovision.com/";2728 # We are only interested on the news from the first page,as more news come up it will push older news29 my $newsUrl = "$baseUrl" . "history.php?cha=1&pag=1";3031 use constant DEFAULT_TIMEOUT32  => 180;3334 my $agent = LWP::UserAgent->new({35   agent => 'GlobovisionHtml2Rss.pl/kodegeek 0.1',36   timeout => DEFAULT_TIMEOUT37      });38 my $response = $agent->get($newsUrl);39 if (! $response->is_success) {40  die  sprintf "[ERROR]: Unable to retrieve the HTMLfrom '%s', Status: '%s'", $newsUrl, $response->status_line;41 }42 my $parser = HTML::Parser->new(43                         api_version => 3,44    start_h => [ \&start_a, "tagname, attr" ],45    text_h => [ \&get_headline, "dtext" ]46    );47 $parser->ignore_tags(@ignore_tags);48 my $headlineFlag=0;49 my $currUrl=undef;50 $parser->parse($response->decoded_content());5152 $rss->save($rssFile);5354 # ****** Functions used on the script *******5556 # Get the headline57 sub get_headline {58  my $headline = $_[0];59  if ($headlineFlag) {60   $rss->add_item( title => $headline, link => $currUrl);61   $headlineFlag = 0;62   $currUrl=undef;63  }64 }6566 # Identify news items67 sub start_a {68  my $tagname = $_[0];69  my %attr = %{$_[1]};70  if ( ($tagname eq "a") && ($attr{href} =~ /^news.php?.nid=\d+/) ) {71   my $url = $baseUrl . "/" . $attr{href};72   $url =~ s/&/&/g;73   $currUrl = $url;74   $headlineFlag=1;75  }76 }77 __END__78 =head1 NAME7980 GlobovisionHtml2Rss.pl - Script to convert Globovision.com Venezuelalocal news from HTML to RSS.8182 =head1 DESCRIPTION8384 I use a combination of Yahoo Pipes and Google Reader to keep meupdated about news of any kind. However, some websites like85 Globovision.com still don't have a proper RSS feed, so one dayI decided to create my own mashup :).8687 =head1 AUTHOR8889 Jose Vicente Nunez Zuleta (josevnz@kodegeek.com)9091 =head1 BLOG9293 KodeGeek - http://kodegeek.com9495 =head1 LICENSE9697 GPL9899 cut

Lo más fastidioso de este ejercicio fué instalar EXPAT (para el procesamiento del XML del feed RSS) y el módulo parta crear el archivo RSS (me da un fastidio enorme aprender como es el formato resultante).

Mi proveedor de hosting gustosamente instaló el módulo XML::RSS. Después de probarlo un poco aquí les dejo las noticias de Globovisión para que la disfruten (planeo actualizar el lector de noticias cada 10 minutos para no matar a mi servidor).

Blogalaxia.com:globovision, rss, html to rss, perl, open source
Technorati.com:globovision, rss, html to rss, perl, open source

Sin categoría , , , ,