New question

Question:

Date: 10-10-2018 13:38:39 (In Spanish)

Cómo hacer petición POST con CURL para obtener datos de una pagina web[Unresolved]

Estoy tratando de obtener datos de una pagina web por curl, esta pagina posee un formulario donde se ingresa el id de una persona y al presionar el botón de submit devuelve información como nombre y apellido de la persona. Es obviamente una pagina publica a la que cualquier persona tiene acceso.
El caso es que el formulario se envia por POST, cuando intento ejecutar el codigo que tengo para intentar obtener los datos lo que me arroja es un error "ERROR 404 Objeto no localizado". Estoy intentando hacer esto desde mi local.

Aqui dejo el codigo que he creado:


 // abrimos la sesión cURL
				$ch = curl_init();

				// definimos la URL a la que hacemos la petición
				curl_setopt($ch, CURLOPT_URL,"www.buscardatos.com/Personas/DNI/dni.php");
				// indicamos el tipo de petición: POST
				curl_setopt($ch, CURLOPT_POST, TRUE);
				// definimos cada uno de los parámetros
				curl_setopt($ch, CURLOPT_POSTFIELDS, "DNI=25205322");

				// recibimos la respuesta y la guardamos en una variable
				curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
				$remote_server_output = curl_exec ($ch);

				// cerramos la sesión cURL
				curl_close ($ch);

				// hacemos lo que queramos con los datos recibidos
				// por ejemplo, los mostramos
				print_r($remote_server_output);


Quiero que por lo menos se muestre en pantalla la pagina de respuesta donde se visualizan los datos extraidos. Pero ni eso. solo me muestra la pagina de error 404 Objeto No Localizado.
No se qué exactamente estoy haciendo mal en el codigo, no se si el problema es que lo estoy haciendo en local.
Pueden acceder a esta pagina: www.buscardatos.com/Personas/DNI en la cual se ubica el formulario donde se introduce el dni y al darle click al boton submit redirige a la pagina: www.buscardatos.com/Personas/DNI/dni.php en la cual se muestran los datos.

Si pudieran ayudarme a resolver esta duda se los agradecería mucho.
Tags: $_POST - AJAX - Array PHP - CSS - CSS3 - cURL - Database - Development - Framework - HTML - HTML5 - HTTP - Input - Javascript - JQuery - MySQL - MySQL Developing - PHP - PHP Advanced - PHP Class - PHP Fatal error - PHP JSON - PHP MySQLi - PHP PDO - PHP7 - Query - Question - Script PHP - SQL - Start in Programming - Suggestion - Web Votes: 0 - Answers: 7 - Views: 14 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 10-10-2018 20:58:18 oye bro, esa pagina tiene un validador de navegador, así que ya allí hay problemas pues eso verifica hasta donde se si el acceso es mediante un navegador o es un robot remoto, por otro lado solo permite una consulta diaria en modo gratuito, así que tendrías que ver como engañar eso o pagar el plan que cobren por las consultas.

    Yo intente usarla una vez para ubicar la info de unos Argentinos de Misiones que me estafaron con un trabajo, tu sabes la novatada, algo encontré pero la web tiene esas limitaciones.
      Votes: 0 - Link answer
     
  • Date: 11-10-2018 03:40:33 Yo he pagado el plan amigo, tengo mi usuario y clave, pero no se como hacer en ese caso para loguearme con CURL y acceder al formulario donde ingreso el DNI y me da el nombre. Por eso intente hacerlo de la forma en que lo he colocado arriba.

    Tenia este código para loguearme:

    // Creamos un array con los valores que se pasaran por post
    				$data = 'user='.urlencode("aqui_correo_logueo").'&key='.urlencode("aqui_la_clave");
    
    				// Se crea un manejador CURL
    				$ch=curl_init ();
    				 
    				// Se establece la URL y algunas opciones
    				curl_setopt($ch, CURLOPT_URL, "www.buscardatos.com/Socios/ingresso.php");
    
    				 curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36');
    
    				curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept-Language: es-es,en"));
    				 
    				// Indicamos que enviaremos las variables en POST
    				curl_setopt($ch, CURLOPT_POST, true);
    				 
    				// Adjuntamos las variables
    				curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    
    				curl_setopt($ch, CURLOPT_HEADER, false);
    
    				// Indicamos que el resultado lo devuelva curl_exec()
    				curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    				curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    
    				//curl_setopt($ch, CURLOPT_COOKIEFILE, $coockie_file);
    
    				//curl_setopt($ch, CURLOPT_COOKIEJAR, $coockie_file);
    
    				// Se obtiene la pagina indicada
    				$result=curl_exec($ch);
    
    				curl_close($ch);
    				 
    				echo "El resultado de la web es: ". $result;


    Pero cuando intento con ese código, el resultado que me da es el mismo que expuse en la parte de arriba, primero me aparece una pagina que me indica que esta redirigiendo automaticamente y luego me sale la pagina de error 404 Objeto no encontrado.
    No he logrado loguearme.
      Votes: 0 - Link answer
     
  • Date: 11-10-2018 04:03:01 es exacto por lo que te dije, en todo caso, ya contactaste a los chicos de la web a ver si cuentas con una API para los usuarios o te dan alguna solución a tu problema?? ya que estas pagando creo tienes ese derecho de preguntarles y ver que soluciones ofrecen al respecto, pues no se me ocurre mucho dado ese validador de navegador que en realidad corta la petición   Votes: 0 - Link answer
     
  • Date: 11-10-2018 08:28:41 Hola Roland. He revisado el código y no le hallo nada fuera de los común excepto que la dirección no tiene el protocolo http:// o https://, eso es fundamental para la conexión con CURL. Prueba y nos cuentas.   Votes: 0 - Link answer
     
  • Date: 11-10-2018 09:12:35 Para Carlos Quintana: Ya he contactado con los de soporte y me han dicho que lamentablemente no cuentan con APIs para sus socios, el sitio no permite que robots o sistemas automatizados accedan a él de alguna manera para obtener datos. Desgraciadamente no podré conectarme.

    Como comenta el amigo Leonardo Montilla, el código esta bien pero el problema al parecer es el sitio.

    Gracias a ambos por sus aportes, conocimientos y sugerencias.
      Votes: 1 - Link answer
     
  • Date: 11-10-2018 13:11:59 Te recomiendo utilizar otra herramienta, es otro lenguaje muy útil y lo puedes conectar a un web service desarrollado en php para almacenar datos en mysql. he hecho muchas integraciones con estos robots que copian la labor de un usuario común y pueden trabajar muchas horas sin bloquearse, te dejo los links del lenguaje y mi numero de Whatsapp si quieres que te asesore

    Lenguaje de automatización Autoit: Autoit
    Mi numero Whats 3228934083
    Mi correo villabryan12@gmail.com
    Saludos y suerte con tu proyecto
      Votes: 0 - Link answer
     
  • Date: 05-02-2019 12:44:42 Carlos Quintero, a qu'e te refieres con un validador de navegador?
    Cómo lo detectaste?

    Roland Flores, estás mandando los datos a la URL incorrecta. Según veo deberías mandarlos a Socios/goin.php

    Si te fijas están utilizando Bootstrap con PHP y parece que no utilizan un framework.
    El código se ve "viejo" y burdo así que dudo que tengan algo muy sofisticado. A lo mucho pienso que están utilizando un mecanismo de CSRF en una cookie o alguna variable de sesión.

    Intenta redirigiendo la petición a la URL adecuada. Si no funciona entonces hay que usar "maquinaria pesada" jajajaja pero de que se puede se puede.
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In