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.

¿Conoces alguien que puede responder?
¡Comparte esta pregunta!


Otras Preguntas y Respuestas


Actividad Reciente

  • Freda0370183 ganó una medalla hace 6 horas

    Club de los 100 - Recibió un total de 100 puntos
  • NilaPilgrim4 ganó una medalla hace 15 horas

    Humano Verificado - Verificó su email
  • ErwinImhoff1 ganó una medalla hace 1 día

    Club de los 100 - Recibió un total de 100 puntos
  • FelipeMedel ganó una medalla hace 1 día

    Buen Comentario - Comment received +2 upvote
  • FelipeMedel ganó una medalla hace 1 día

    Renovador - Recibió medalla Buena Respuesta en res…
  • FelipeMedel ganó una medalla hace 1 día

    Buena Respuesta - Recibió +1 votos en respuesta
  • FelipeMedel ganó una medalla hace 1 día

    Buen Comentario - Comment received +2 upvote
  • FelipeMedel ganó una medalla hace 1 día

    Buena Respuesta - Recibió +1 votos en respuesta
  • EllPanda ganó una medalla hace 1 día

    Veterano - Primera visita hace más de 180 días
  • EllPanda ganó una medalla hace 1 día

    Regular - Primera visita hace más de 90 días
...

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

Conecta