Perl Archives

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->is
success) {
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 }

cne2.pl

About Walter Vargas

user-pic I Blog About Perl