Foros del Web » Programando para Internet » PHP »

Curl: imposible conectar por culpa de redirección

Estas en el tema de Curl: imposible conectar por culpa de redirección en el foro de PHP en Foros del Web. Buenas tengo un problema con Curl. Estoy intentando conectar con la página de www.atrapalo.com, en la seccion hoteles, para extraer info y no hay manera. ...
  #1 (permalink)  
Antiguo 27/10/2011, 08:49
 
Fecha de Ingreso: febrero-2011
Mensajes: 78
Antigüedad: 13 años, 2 meses
Puntos: 0
Problema con Curl

Buenas tengo un problema con Curl. Estoy intentando conectar con la página de www.atrapalo.com, en la seccion hoteles, para extraer info y no hay manera. Estoy usando el httpFox para ver que es lo que ocurre, y por ahora no lo veo nada claro, hay varias redirecciones (creo que 3) y se produce una carga con javascript para mostrar los resultados de la busqueda, que hace aún más difícil que se consiga sacar información. Alguien que conozca algún caso similiar y que me pueda dar una orientación sobre como proceder en estos casos o recomendar algún manual? El idioma no es problema. Saludos
  #2 (permalink)  
Antiguo 28/10/2011, 11:52
 
Fecha de Ingreso: febrero-2011
Mensajes: 78
Antigüedad: 13 años, 2 meses
Puntos: 0
Curl: imposible conectar por culpa de redirección

Buenas hola a todos, queria enseñaros cierto código y un gran problema con Curl, ya que no es que no consiga extraer información de una página, sino que no consigo conectar con ella ya que hay redirección de por medio y aunque capture la dirección final de la web y la envie a curl y haga de nuevo un connect, sigue sin entrar de ninguna de las maneras. Bueno allá va el código explicado, por si algún samaritano se ofrece a echar un cable:

La primera conexión con Curl funciona y sería así:
$curl->setUrl('http://www.atrapalo.com/hoteles');
$curl->setMethod('POST');
$curl->setParam($params);
$atrapalo = $curl->Conect();
print_r($atrapalo);

Aqui el print_r de $atrapalo me muestra una web con hoteles pero sin resultados de busqueda. Capturando con el httpfox y demás, consigo ver que la redireccion es a esta otra web:

http://www.atrapalo.com/hoteles/results/6cc0889edf735f5fce6456ad07db71b2_2/

Tras copiar y pegar en el navegador constato que efectivamente es la web con la busqueda y los resultados aparecen tras una carga con javascript.
Hago un preg_match y guardo la url en $url y hago lo siguiente:

$curl->setUrl("$url");
$curl->setMethod('GET');
$curl->setParam($params);
$atrapalo = $curl->Conect();
print_r($atrapalo);

Y me sale un pantallazo blanco. Alguien sabe porque?/como hacerlo?
PD: aclaro por si alguien tiene la duda, que en la var $params están los parámetros de la búsqueda.
  #3 (permalink)  
Antiguo 28/10/2011, 13:42
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Curl: imposible conectar por culpa de redirección

Pasandole CURLOPT_FOLLOWLOCATION a curl_setopt() como true puedes hacer que siga todas las redirecciones que hayan.
El inconveniente es que estas usando una librería de un tercero para cURL por lo que me es difícil decirte exactamente como setear la banderilla.
  #4 (permalink)  
Antiguo 31/10/2011, 10:09
 
Fecha de Ingreso: febrero-2011
Mensajes: 78
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Curl: imposible conectar por culpa de redirección

Cita:
Iniciado por Ronruby Ver Mensaje
Pasandole CURLOPT_FOLLOWLOCATION a curl_setopt() como true puedes hacer que siga todas las redirecciones que hayan.
El inconveniente es que estas usando una librería de un tercero para cURL por lo que me es difícil decirte exactamente como setear la banderilla.


Ahora mismo estoy usando la clase curl standar y he probado con el followlocation aunque sin exito por ahora. Una cosilla, me podrias explicar mejor que es eso de setear una banderilla???

Etiquetas: curl, imposible
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 15:35.