Сделать скриншот сайта на php с помощью сервиса PhantomJScloud

Сделать скриншот сайта на php с помощью сервиса PhantomJScloud

Благодаря данному коду вы можете скриншотить сайт или отдельные элементы сайта в автоматическом режиме. Получите ключ авторизации и выполняйте запросы на пхп с помощью curl.

Получите ключ для выполнения запросов на ресурсе PhantomJScloud.com и замените это “phantomkey” на свой ключ.

Укажите селектор, если нужно заскриншотить отдельный блок, например: "selector":"pre".

Ниже продемонстрирован пример сохранения скриншота на сервере.

$this->PhantomOnline('http://site.ru', filename');
⁠⁠⁠⁠⁠⁠⁠

public function PhantomOnline($page, $name){
$url = 'https://PhantomJScloud.com/api/browser/v2/phantomkey/';
$payload = '{
"url":"'.$page.'",
"renderType":"jpeg",
"renderSettings":{
"selector":"pre"
}
}';
$options = array(
'http' => array(
'header' => "Content-type: application/json",
'method' => 'POST',
'content' => $payload
)
);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

try {
if( !file_exists('img/screens/'.$name.'.png') ){
$server_output = curl_exec($ch);
if ($server_output === FALSE) { /* Handle error */ }
file_put_contents('img/screens/'.$name.'.png',$server_output);
sleep(10);
}
} catch (Exception $e){

}


curl_close($ch);

}