Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problemas con cargar una pagina con cUrl

Estas en el tema de Problemas con cargar una pagina con cUrl en el foro de PHP en Foros del Web. buen dia compañeros, soy nuevo en este foro y pues estoy desesperado jaja, esto realizando una aplicacion en la cual pueda obtener la CURP desde ...
  #1 (permalink)  
Antiguo 07/07/2014, 17:41
 
Fecha de Ingreso: julio-2014
Ubicación: jalisco
Mensajes: 5
Antigüedad: 10 años, 5 meses
Puntos: 0
Pregunta Problemas con cargar una pagina con cUrl

buen dia compañeros, soy nuevo en este foro y pues estoy desesperado jaja,
esto realizando una aplicacion en la cual pueda obtener la CURP desde la pagina oficial (http://consultas.curp.gob.mx/CurpSP/) mediante las funciones cURL, el problema es que cuando mando la url no me carga la pagina pero no arroja ningun error tampoco, solo se queda en banco.

yo le mando esta url
"http://consultas.curp.gob.mx/CurpSP/curp11.do?strPrimerApellido=TENORIO&strSegundoApli do=DIAZ&strNombre=CRUZ%20ANTONIO&strdia=16&strmes= 08&stranio=1989&sEntidadA=TS&sSexoA=H&strTipo=A&co digo=4567c"

el parametro "codigo" es el del capcha asi que varia

si copio y pego la url con el codigo del capcha en el navegador si me devuelve la CURP, el inconveniente es que desde curl no.

otra cosa que note es que si solo pongo el principio de la url "http://consultas.curp.gob.mx/CurpSP" si me carga la pagina

pongo el codigo para mayor referencias

<?php

$url="http://consultas.curp.gob.mx/CurpSP/curp11.do?strPrimerApellido=TENORIO&strSegundoApli do=DIAZ&strNombre=CRUZ%20ANTONIO&strdia=16&strmes= 08&stranio=1989&sEntidadA=TS&sSexoA=H&strTipo=A&co digo=4567c";
//$url="http://consultas.curp.gob.mx/CurpSP";
ob_start();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($ch);
//echo $response;exit;
if($response === false)
{
echo 'Curl error: ' . curl_error($ch);
}
else
{
curl_close($ch);
$body = ob_get_contents();
ob_end_clean();
$document = new DOMDocument();
$document->loadHTML($body);
$inputs = $document->getElementsByTagName("input");

foreach ($inputs as $input) {
if ($input->getAttribute("name") == "strCurp") {
$curp = $input->getAttribute("value");
echo $curp;
}
}
}

?>


saludos

Última edición por Cruz_Tenorio; 07/07/2014 a las 17:46 Razón: completar informacion
  #2 (permalink)  
Antiguo 07/07/2014, 18:22
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 2 meses
Puntos: 123
Respuesta: Problemas con cargar una pagina con cUrl

Siento no poder ser de mucha ayuda, pero te dejo este aporte del amigo @abimaelrc

[APORTE] file_get_contents(), cURL, HTTP_Request

Quizas encuentres algo de luz.
  #3 (permalink)  
Antiguo 10/07/2014, 17:28
 
Fecha de Ingreso: julio-2014
Ubicación: jalisco
Mensajes: 5
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Problemas con cargar una pagina con cUrl

muchas gracias xerifandtomas, pero aun me devuelve el resultado en blanco,
ya intente de todas esas maneras y ninguna me da resultado.
  #4 (permalink)  
Antiguo 10/07/2014, 19:59
 
Fecha de Ingreso: julio-2014
Ubicación: jalisco
Mensajes: 5
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Problemas con cargar una pagina con cUrl

amigos por fin lo logre, se tiene que crear una clase que se las dejo a continuacion para quien la llegue a necesitar

Código PHP:
<?php 
class HttpConnection {  
    private 
$curl;  
    private 
$cookie;  
    private 
$cookie_path="/cookies";  
    private 
$id;  
  
    public function 
__construct() {  
        
$this->id time();  
    }  
    
/** 
     * Inicializa el objeto curl con las opciones por defecto. 
     * Si es null se crea 
     * @param string $cookie a usar para la conexion 
     */  
    
public function init($cookie=null) {  
        if(
$cookie)  
            
$this->cookie $cookie;  
        else  
            
$this->cookie $this->cookie_path $this->id;  
  
        
$this->curl=curl_init();  
        
curl_setopt($this->curlCURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1");  
        
curl_setopt($this->curlCURLOPT_HEADERfalse);  
        
curl_setopt($this->curlCURLOPT_COOKIEFILE,$this->cookie);  
        
curl_setopt($this->curlCURLOPT_HTTPHEADER, array("Accept-Language: es-es,en"));  
        
curl_setopt($this->curlCURLOPT_COOKIEJAR$this->cookie);  
        
curl_setopt($this->curlCURLOPT_SSL_VERIFYPEERfalse);  
        
curl_setopt($this->curlCURLOPT_SSL_VERIFYHOSTfalse);  
        
curl_setopt($this->curlCURLOPT_HTTP_VERSIONCURL_HTTP_VERSION_1_0);  
        
curl_setopt($this->curlCURLOPT_RETURNTRANSFER,true);  
        
curl_setopt($this->curlCURLOPT_CONNECTTIMEOUT5);  
        
curl_setopt($this->curlCURLOPT_TIMEOUT60);  
        
curl_setopt($this->curlCURLOPT_AUTOREFERERTRUE);  
}  
    
/** 
     * Establece en que ruta se guardan las cookies. 
     * Importante: El usuario de apache debe tener acceso de lectura y escritura 
     * @param string $path 
     */  
    
public function setCookiePath($path){  
        
$this->cookie_path $path;  
    }  
    
/** 
     * Envía una peticion GET a la URL especificada 
     * @param string $url 
     * @param bool $follow 
     * @return string Respuesta generada por el servidor 
     */  
    
public function get($url,$follow=false) {  
        
$this->init();  
        
curl_setopt($this->curlCURLOPT_URL$url);  
        
curl_setopt($this->curlCURLOPT_POST,false);  
        
curl_setopt($this->curlCURLOPT_HEADER$follow);  
        
curl_setopt($this->curlCURLOPT_REFERER'');  
        
curl_setopt($this->curlCURLOPT_FOLLOWLOCATION$follow);  
        
$result=curl_exec ($this->curl);  
        if(
$result === false){  
            echo 
curl_error($this->curl);  
        }  
        
$this->_close();  
        return 
$result;  
    }  
    
/** 
     * Envía una petición POST a la URL especificada 
     * @param string $url 
     * @param array $post_elements 
     * @param bool $follow 
     * @param bool $header 
     * @return string Respuesta generada por el servidor 
     */  
    
public function post($url,$post_elements,$follow=false,$header=false) {  
        
$this->init();  
        
$elements=array();  
        foreach (
$post_elements as $name=>$value) {  
            
$elements[] = "{$name}=".urlencode($value);  
        }  
        
$elements join("&",$elements);  
        
curl_setopt($this->curlCURLOPT_URL$url);  
        
curl_setopt($this->curlCURLOPT_POST,true);  
        
curl_setopt($this->curlCURLOPT_REFERER'');  
        
curl_setopt($this->curlCURLOPT_HEADER$header OR $follow);  
        
curl_setopt($this->curlCURLOPT_POSTFIELDS$elements);  
        
curl_setopt($this->curlCURLOPT_FOLLOWLOCATION$follow);  
        
$result=curl_exec ($this->curl);  
        
$this->_close();  
        return 
$result;  
    }  
    
/** 
     * Descarga un fichero binario en el buffer 
     * @param string $url 
     * @return string 
     */  
    
public function getBinary($url){  
        
$this->init();  
        
curl_setopt($this->curlCURLOPT_URL$url);  
        
curl_setopt($this->curlCURLOPT_BINARYTRANSFER,1);  
        
$result curl_exec ($this->curl);  
        
$this->_close();  
        return 
$result;  
    }  
    
/** 
     * Cierra la conexión 
     */  
    
private function _close() {  
        
curl_close($this->curl);  
    }  
    public function 
close(){  
        if(
file_exists($this->cookie))  
            
unlink($this->cookie);  
    }  
}  
?>
y para utilizarla

Código PHP:
<?php 

include 'Classes/cURL.Class.php';
$http = new HttpConnection();  
$http->setCookiePath("/my_cookie_path/");  
$http->init();
$html $http->get("Aqui va la url que desean obtener");  
$http->close();

echo 
$html;
?>
  #5 (permalink)  
Antiguo 28/07/2014, 09:00
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Problemas con cargar una pagina con cUrl

Hola Cruz_Tenorio... me abre la pagina como ( Sesi�n expirada, cierre �sta ventana y presione F5 para realizar otra consulta) y cuando uso el DOMDocument(); me manda el siguientes errores

Warning: DOMDocument::loadHTML(): htmlParseStartTag: misplaced <html> tag in Entity, line: 14 in
Warning: DOMDocument::loadHTML(): htmlParseStartTag: misplaced <head> tag in Entity, line: 15 in
Warning: DOMDocument::loadHTML(): Input is not proper UTF-8, indicate encoding ! in Entity, line: 29 in
Warning: DOMDocument::loadHTML(): htmlParseStartTag: misplaced <body> tag in Entity, line: 42 in

supongo son porque no encuentra las etiquetas necesito su ayudaaa

Etiquetas: curl, curp
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 12:02.