Es una librería que proporciona la interfaz para utilizar CURL. CURL permite la comunicación en diferentes protocolos como TTP, HTTPS, FTP, FTPS, GOPHER, LDAP, DICT, TELNET o FILE.
El uso principal que le doy es para descargar el código fuente de una web para poder analizar su contenido y procesar la información que me interesa. Por ejemplo se puede utilizar como escaner de links y direcciones de correo de un sitio web.
El código más básico para obtener el código fuente de una URL es:
<?php $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'http://www.unaweb.com/paginaaescanear.htm'); curl_setopt($curl, CURLOPT_HEADER, 0); //no mostrar cabeceras curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //no mostrar en pantalla $data = curl_exec($curl); //descargar página curl_close($curl); ?>
Donde en la variable $data almacenamos el código fuente de la página que le decimos.
Si hay un login para entrar y necesitamos especificar usuario y contraseña, mandamos las variables por el método que utilice el formulario.
El script de validación tomará las variables que le pasamos y nos redirecciona a la página restringida igual que si hubiésemos escrito los valores en el formulario.
Mediante la opción curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1) conseguimos que se redireccione y no se quede parado en el script de login.
<?php $curl = curl_init(); $user = "usuario"; $pass = "clave"; $action = "Entrar"; $postfields = "user=".$user."&pass=".$pass."&action=".$action; curl_setopt($curl, CURLOPT_URL, 'http://www.unaweb.com/login.php'); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_POST, 1); //por metodo post //establece variables post curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields); //sigue los header("Location:") curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); $data = curl_exec($curl); curl_close($curl); ?>
Este código no muestra como escanear un website completo. Eso lo haré en otro post pero dejo una introducción.
Se necesita utilizar una base de datos que guarde las urls a escanear y si estas han sido visitadas ya.
En cada página escaneada, se extraen los enlaces y se almacenan en la base de datos si no están previamente especificando que todavía no han sido visitadas mediante un booleano por ejemplo.
Tomar la primera página sin visitar y leerla. Tomar sus enlaces y guardarlos en la base de datos.
Así hasta que no queden enlaces sin visitar.
Los comentarios están cerrados.