Foros del Web » Programando para Internet » PHP »

Robot web con curl

Estas en el tema de Robot web con curl en el foro de PHP en Foros del Web. hola a todos, Estoy intentando crear un robot web con curl. Y mi pregunta es la siguiente: Como consigo que el robot vaya copiando todas ...
  #1 (permalink)  
Antiguo 20/01/2012, 05:26
 
Fecha de Ingreso: noviembre-2007
Mensajes: 208
Antigüedad: 17 años
Puntos: 2
Robot web con curl

hola a todos,

Estoy intentando crear un robot web con curl.

Y mi pregunta es la siguiente:

Como consigo que el robot vaya copiando todas las webs a las que va accediendo. Me explico:

Yo le paso una url en el principio, esta url lleva a una pagina con un formulario, el cual ingreso gracias a la funcion

curl_setopt($handler, CURLOPT_POSTFIELDS, $datos_acceso);

y mantengo las cookies con las funciones

curl_setopt($handler, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($handler, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($handler, CURLOPT_FILE, $fp);

pero aqui viene mi duda y esque una vez el robot se identifica (deberia ser redireccionado a la pagina interna) como hago para copiar esa pagina interna? es decir, tendria que crear otro recurso curl_init() con la pagina interna o habria alguna manera de que el robot la consiga directamente?

un saludo y espero que se me entienda
  #2 (permalink)  
Antiguo 20/01/2012, 22:23
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 3 meses
Puntos: 105
Respuesta: Robot web con curl

Holas,

Podrias hacer un:

Código PHP:
Ver original
  1. $code = curl_getinfo($handler, CURLINFO_HTTP_CODE);

dentro de un bucle y si $code = 301 o 302 (se redirecciona) entonces nuevamente obtienes la url:


Código PHP:
Ver original
  1. curl_setopt($handler, CURLOPT_URL, $url);
  2. $header = curl_exec($handler);
  3. ...
  4. preg_match('/Location:(.*?)\n/', $header, $matches);
  5. $url = trim(array_pop($matches));
  6. ....

Si ya no tienes 301 o 302 pues sales del bucle y ya tienes la url final:

Código PHP:
Ver original
  1. curl_setopt($handler, CURLOPT_URL,$url);


Saludos
__________________
.: Gildus :.

Etiquetas: curl, formulario, robot
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:02.