entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Como demorar la extracion de Curl asta que carge un elemento de la pagina php

Buenos noches amigos hoy me surgió una duda estoy usando Curl para extraer unos datos de una pagina web de esta manera .

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$url = 'https://ycapi.org/iframe/?v=6YzGOq42zLk';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER,0); //visualizar ñ y acentos.
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_CAINFO, 'cacert.pem');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($ch, CURLOPT_ENCODING, "gzip,deflate"); //(aceptación de codificación gzip)   
$response = curl_exec($ch); //almacena el response de la pagina.

curl_close($ch);

if (preg_match('#rel="nofollow" href=[^"]*"([^"]*)"#', $response, $datos)) {
    $mp = $datos[1];
} else {
    $mp = 'error';
}
echo $mp;

El código es ta bien El problema esta que la pagina donde extraigo los datos tienen que esperar un tiempo para para procesar la información y curl no espera ese tiempo y me extrae los datos null .

La pregunta es existe una manera de hacer que curl espere a que la información este disponible para extraer la pagina.

Pensé usar

    sleed();

Pero realmente no se donde ubicar lo gracias por adelantado.

0voto

magarzon comentado

¿La información se extrae desde el mismo PHP que genera tu página, o se hace una llamada a otro API o algo después?

Por cierto, NUNCA uses sleep() en PHP si es para generar respuesta a una petición web, solo se debería usar cuando se desarrollan comandos de terminal.

0voto

Botxtrem-Solutions comentado

Bueno Gracias por tu respuesta . Encontré una respuesta lógica a mi pregunta . Según entiendo Curl no extrae datos de Ajax por eso el código por mucho que espere no da ningún resultado ya que que lo que quiero obtener se carga mediante Ajax . Bien Ahora te pregunto si conoces alguna manera de lograrlo mediante otro técnica . en javascript

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta