Bucle en bash para bajar páginas consecutivas y como parsearlas
Visto 228 veces
Necesitaba bajar muchas páginas de id consecutiva para luego parsearlas y quedarme con la información que me interesaba, asi que para que no se me olvide como lo he hecho ahí va un tutorial
Primero a bajar, creo un fichero llamado geter (por ejemplo) con este contenido y permisos de ejecución
#!/bin/bash
for ((i=1;i<=muchas;i+=1)); do
echo $i
curl http://xxxx.php?id=$i > bla$i.html
done
Al ejecutarlo se empiezan a bajar todas las paginas, donde muchas son el número a bajar. Ahora vamos con el parseo en php:
Funciones útiles:
La principal es extraer:
function extraer($principio, $fin, $cadena){
 $extraido = explode($principio,$cadena,2);
 $extraido = explode($fin,$extraido[1]);
 return $extraido[0];
}
Ahora vamos con el script, debidamente comentado
for ($i = 1; $i < muchas; $i++){
  $nombre_archivo = ‘bla’ . $i . ‘.html’;
  $gestor = fopen($nombre_archivo, ‘r’);
  $cadena = fread($gestor, filesize($nombre_archivo));
  fclose($gestor); //Con estas lieneas conseguimos tener todo el fichero en una variable
  $cadena = utf8_encode($cadena); //Lo paso a UTF
  $cadena = eregi_replace(’[n|r|nr]’, ”, $cadena); //Quito las tabulaciones y saltos de linea
  $loquequiero1 = extraer(’lo que hay delante’, ‘lo que hay detras’, $cadena);
  $loquequiero1 = extraer(’lo que hay delante’, ‘lo que hay detras’, $cadena);
//A partir de aqui ya es opcional lo que se hace con lo que obtenemos como:
  echo ‘lo que quiero 1 ‘ . $loquequiero1; //imprimirlo
  $db->query(”INSERT INTO loquequiero (guan, chu) VALUES (’$loquequiero1′, ‘$loquequiero2′)”); //guardarlo en bbdd
//Y lo que he usado yo, que ha sido sacarlo a un fichero normal de texto
  echo <<
  Lo que quiero $i
  $loquequiero1
  $loquequiero2
>>>; //Con esto conseguimos sacar el resultado correctamente formateado por la consola
}
Y ya esta, ahora solo falta ejecutar el php con algo tal que loquequiero.php > loquequiero.txt y se generara un bonito txt con la lista de cosas que quiero, ale a mamarla.
* Entradas relacionadas:
Estructuras de control
Me dijeron que se usan para canalizar noseque de datos del programa... yo los uso para crear distintos caminos por donde tirar, hay dos tipos,
Arrays unidimensionales
Los array son estructuras contenedoras con un limite maximo de objetos de cualquier clase, puedes tener array de String, de objeto de la clase Casa
Quienteadmite.com nisiquiera funciona
Nunca me he fiado de paginas como quienteadmite.com por que me parecÃa una forma descarada de conseguir direcciones de correo validas para luego vender o
Intercalar Adsense entre los post en WordPress
La idea era quitar el bloque grande de dabjo del titulo, pero creo que al final no la quitare, eso si, he añadido dos bloques
Solarseek, soulseek en osx
Andaba buscando un programa tipo ares para bajar canciones sueltas que se me vienen a la cabeza rapidamente para la radio cuando me acorde se


