Web Scraping: urls de ayuntamientos de Gipuzkoa

Bien, sigamos con nuestra miniserie. Necesitamos tener una hoja de cálculo con los nombres de los municipios de Gipuzkoa en una columna y las URL de los ayuntamientos de dichos municipios en la columna adyacente. Ayer vimos que eso es viable y más o menos «automatizable», siempre que dispongamos de algún servicio que nos proporcione la URL de un municipio dado su nombre como parámetro.
La información en bruto la podemos encontrar en esta web de EUDEL. El objetivo es «recortar» esa información para guardarla en una simple tabla de una base de datos (usando MySQL como SGDB). Para ello, creamos primero el esquema de nuestra tabla municipios, donde guardaremos la información:


CREATE TABLE `municipios` (
`ID` int(11) NOT NULL auto_increment,
`nombre` varchar(200) NOT NULL default »,
`url` varchar(200) NOT NULL default »,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Un simple script PHP hará el resto:


(.*)<br><a(.*)>(.*)</a></li>/», $linea, $trozos); // expresión regular para sacar nombre_URL
$i = 0;
foreach ($trozos[1] as $nombre) { // recorremos el resultado de la expresión regular
$url = $trozos[3][$i];
$sql = «insert into municipios
set ID=», nombre=’$nombre’, url=’$url'»;
mysql_query($sql) or die(«Error:» . mysql_error()); // guardamos lo obtenido en la tabla municipios
echo $sql . «n»;
$i++;
}
?>

Una vez guardadas las tuplas (nombre, url), sólo nos queda crear el servicio php correspondiente:

0){
$linea = mysql_fetch_array($result);
echo $linea[‘url’];
}
?>

Ok! Todo funciona. ¿Y para qué quiero esos datos? Pronto lo veréis…

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.