Consultez la formation SEO spéciale Wordpress
par WebRankInfo / Ranking Metrics

Messages: 460

Enregistré le: 3 Fév 2005

Message le Mer Jan 25, 2017 15:12

Bonjour,

je souhaite savoir si il existe un script, librairie ou autres qui me permettrait de prendre une capture d'écran sur un site (avec éventuellement un browser headless) sans passer pas un serveur type vps. Je suis sous GANDI simple hosting.

Je testé en local la librairie php-phantomjs qui rempli parfaitement cette tache, mais en ligne il faut obligatoirement passer par un serveur dédié car il faut exécuter un .exe.

Je vous remercie d'avance pour vos réponses.

Librairie php-phantomjs : http://jonnnnyw.github.io/php-phantomjs/
Haut
14 Réponses
Messages: 8552

Enregistré le: 14 Mai 2003

Message le Mer Jan 25, 2017 15:28

Sans pouvoir utiliser PhantomJS, XVFB, wkhtmltopdf, khtml2png, Firefox, CutyCapt, VNC, etc etc (oui j'ai énormément cherché). Je ne vois pas comment tu pourrais faire sur un mutu.

J'utilise PhantomJS et je n'ai vraiment rien trouvé de mieux.

Edit: exemple: Image
Haut
Messages: 12286

Enregistré le: 23 Nov 2005

Message le Mer Jan 25, 2017 15:31

Ou le couple Imagemagick + allow_url_fopen. Mais idem, en mutu...
Haut
Messages: 8552

Enregistré le: 14 Mai 2003

Message le Mer Jan 25, 2017 15:34

Et un VPS ça coûte 3 € / mois.
Haut
Messages: 460

Enregistré le: 3 Fév 2005

Message le Mer Jan 25, 2017 15:45

Comment ca se passe pour l'installation de phantomjs avec un vps parceque je comprends pas trop. Sur le mutu j'aurais donc le script php (qui sert à demander une capture) et la librairie phantomjs ? Du coup sur le vps j'aurais uniquement le .exe que j'interrogerais via mon script php ?
Haut
Messages: 8552

Enregistré le: 14 Mai 2003

Message le Mer Jan 25, 2017 16:23

Il suffit de dézipper et puis ça marche: http://phantomjs.org/download.html
Ensuite en PHP screenshot.php:
Code: Tout sélectionner
exec("/ton/repertoire/phantomjs/bin/phantomjs screenshot.js http://example.com example.png"); 


Et puis tu appeles ton script via:
Code: Tout sélectionner
<img src="http://tonvps.com/screenshot.php?url=http://example.com/&amp;size=320x200">


Bon c'est la base de chez base parce qu'en suite faut gérer le cas de pas en générer 1000 à la fois (queue ou autre), faire un thumbnail, etc etc...
Haut
Messages: 460

Enregistré le: 3 Fév 2005

Message le Mer Jan 25, 2017 17:10

Oui mais ceci "/ton/repertoire/phantomjs/bin/phantomjs" se trouve sur le serveur ou sur le mutualisé ?
Haut
Messages: 8552

Enregistré le: 14 Mai 2003

Message le Mer Jan 25, 2017 17:19

Sur le serveur
Haut
Messages: 460

Enregistré le: 3 Fév 2005

Message le Mer Jan 25, 2017 17:30

Ok j'ai compris. Dernière question. N'ayant jamais loué de vps est ce que l'installation d'une librairie comme celle ci est compliqué ?

Je le met ou le contenu du zip exactement ?

Y a t'il un paramétrage du vps auparavant ?

Si il y a un tuto je suis preneur.
Haut
Messages: 8552

Enregistré le: 14 Mai 2003

Message le Mer Jan 25, 2017 18:25

C'est pas compliqué pour celui qui sait.
Le zip tu le mets où tu veux.
Oui il faut paramètrer un peu le VPS (serveur web + PHP notamment).
Des tutos il y en au moins 1000.
Haut
Messages: 460

Enregistré le: 3 Fév 2005

Message le Mer Jan 25, 2017 19:11

Admettons que j'installe la librairie php-phantomjs sur mon mutu mais par contre je met le bin/phantomjs sur le vps cela est possible si on fais un appelavec un script php qui se trouverait sur le mutu : ?
Code: Tout sélectionner

<?php

// script php sur le mutu

use JonnyW\PhantomJs\Client;

$client->setPhantomJs('http://mon vps /path/to/phantomjs');

$client = Client::getInstance();

/**
 * @see JonnyW\PhantomJs\Message\Request
 **/
$request = $client->getMessageFactory()->createRequest('GET', 'http://google.com');

/**
 * @see JonnyW\PhantomJs\Message\Response
 **/
$response = $client->getMessageFactory()->createResponse();

// Send the request
$client->send($request, $response, '/path/to/save/screen/capture.png');

?>


Source : https://bitbucket.org/londoh/php-phantomjs
Haut
Messages: 8552

Enregistré le: 14 Mai 2003

Message le Mer Jan 25, 2017 22:24

En regardant le code source du client, non je ne pense pas.
Haut
Messages: 460

Enregistré le: 3 Fév 2005

Message le Jeu Jan 26, 2017 22:24

Dans ce code :

Code: Tout sélectionner
exec("/ton/repertoire/phantomjs/bin/phantomjs screenshot.js http://example.com example.png");


screenshot.js c'est un fichier à créer ou contenu dans le zip ? Si c'est le cas je ne le trouve pas.
Haut
Messages: 8552

Enregistré le: 14 Mai 2003

Message le Ven Jan 27, 2017 7:09

Dans le zip il y a un rasterize.js qui fait pareil
Haut
Messages: 8552

Enregistré le: 14 Mai 2003

Message le Mer Sep 27, 2017 12:29

Déterrage pour donner une soluce encore plus simple: https://github.com/spatie/browsershot
Haut

Formation recommandée sur ce thème :

Formation SEO spéciale Wordpress : apprenez à optimiser le référencement naturel d'un site fait avec Wordpress... Formation Ranking Metrics animée par un expert SEO / Wordpress.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.