Cómo realizar un pantallazo de una web externa a partir de una URL mediante PHP

La función de capturar la pantalla de un sitio web externo se utiliza para diversos fines en muchas aplicaciones web. Existen muchas APIs de terceros disponibles para realizar pantallazos de un sitio web. Pero si lo que deseas es crear tu propio script para obtener una captura de pantalla de una URL en concreto, puedes hacerlo fácilmente mediante PHP y la API de Google PageSpeed Insights.

Generalmente, la API de Google PageSpeed Insights se utiliza para medir el rendimiento de un sitio web. Pero también se puede utilizar la API de Google PageSpeed Insights para obtener una captura de pantalla del sitio web desde una URL. En este tutorial, te mostraremos cómo realizar un pantallazo de un sitio web externo a partir de un URL utilizando la API de Google PageSpeed Insights y PHP.

En el siguiente ejemplo realizaremos un script que tome una captura de pantalla de un sitio web externo.

Realizar un pantallazo a partir de una URL

Para realizar pantallazos de un sitio web, necesitaremos llamar a la API de Google Pagespeed Insights con los siguientes parámetros.

  • url: La URL del sitio web de la que quieres tomar la captura
  • screenshot: Ponlo a true para indicar que quieres tomar una captura
//website url
$siteURL = "http://www.programacion.net/";

//call Google PageSpeed Insights API
$googlePagespeedData = file_get_contents("https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=$siteURL&screenshot=true");

//decode json data
$googlePagespeedData = json_decode($googlePagespeedData, true);

//screenshot data
$screenshot = $googlePagespeedData['screenshot']['data'];
$screenshot = str_replace(array('_','-'),array('/','+'),$screenshot); 

//display screenshot image
echo "<img src="data:image/jpeg;base64,".$screenshot."" />";

Formulario para realizar capturas de pantalla

En este script de ejemplo, te mostraremos cómo desarrollar un formulario para realizar capturas de pantalla mediante una URL proporcionada por el usuario y mostrarla por pantalla también.

HTML

El siguiente formulario HTML cuenta con un campo input que acepta la URL de un sitio web. Cuando se envíe el formulario, se enviarán los datos a un script de PHP para obtener la captura de la web.

<form method="post" action="getScreenshot.php" >
<p>Website URL: <input type="text" name="url" value="" /></p>
<input type="submit" name="submit" value="CAPTURE">
</form>

PHP (getScreenshot.php)

Antes de llamar a la API de Google PageSpeed Insights, el valor del input enviado se comprueba para ver si es una URL válida. Recuperaremos la información del pantallazo a través de la API de Google PageSpeed Insights y mostraremos dicho pantallazo por pantalla.

<?php
if(!empty($_POST['url'])){
    //website url
    $siteURL = $_POST['url'];

    if(filter_var($siteURL, FILTER_VALIDATE_URL)){
        //call Google PageSpeed Insights API
        $googlePagespeedData = file_get_contents("https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=$siteURL&screenshot=true");

        //decode json data
        $googlePagespeedData = json_decode($googlePagespeedData, true);

        //screenshot data
        $screenshot = $googlePagespeedData['screenshot']['data'];
        $screenshot = str_replace(array('_','-'),array('/','+'),$screenshot);

        //display screenshot image
        echo "<img src="data:image/jpeg;base64,".$screenshot."" />";
    }else{
        echo "Please enter a valid URL.";
    }
}
?>

Fuente: codexworld.com

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP