Consultar al CNE Desde Perl.
En algún momento, en una reunión con un equipo de “Desarrolladores”, un compañero y yo discutíamos sobre el proceso de recolección de datos durante una asamblea comunal, este compañero me planteaba que era muy complicado andar pidiendo el Nombre y Apellido a todas las personas de la asamblea, que esto retardaría el proceso de registro y que por lo tanto, solo iba a recoger los datos de la encuesta y serian datos anónimos.
Yo le sugerí que solo pidiera la Cédula de Identidad, y a partir de la cédula, usara la base de datos del CNE para obtener la información sobre Nombre y Apellidos.
A la anterior sugerencia, el compañero me contesto que si yo estaba loco, que obtener la base de datos del CNE era un tema burocrático que le iba a tomar varias semanas y varios oficios.
A continuación, en un par de lineas escritas muy rápido y sin ninguna preocupación por el estilo, muestro como podemos usar Perl para consultar automáticamente el portal del Consejo Nacional Electoral.
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4 use LWP::UserAgent;
5 use LWP::Simple;
6 sub nombre;
7
8 my $cedula = shift;
9 chomp $cedula;
10
11 my $ua = LWP::UserAgent->new( agent => "Mozilla/5.0 (X11; U; Linux i686; es-AR; rv:1.9.0.11) Gecko/2009061212 Firefox/3.0.11 (Canaima GNU/Linux)" );
12 $ua->defaultheaders;
13
14 my $url = "http://www.cne.gob.ve/ce.php";
15 my $c = $cedula;
16 $c =~ s/.//g;
17 my %parametros = ( cedula => $c, nacionalidad => "V");
18 my $r = $ua->post($url,\%parametros);
19
20 if ($r->issuccess) {
21 my @content = split ’\n’,$r->content;
22 my $nombre = nombre @content;
23 print "Nombre: $nombre \n";
24 }
25
26 sub nombre {
27 my (@c) = @_;
28 my @nombre = grep {/Nombre/} @c;
29 my @b = split /<strong>/, $nombre[0];
30 my $nombre = $b[2];
31 $nombre =~ s/<\/strong><\/td>//;
32 $nombre =~ s/\W$//g;
33 return $nombre;
34 }
Está muy bueno el artículo, quisiera saber si tienes el mismo ejemplo en php? es que no estoy muy familiarizado con perl aún. Gracias.
Saludos.
Leandro Sandoval