Comment prendre des captures d'écran des vignettes de sites web à l'aide de PHP?
Je viens de lire beaucoup d'articles sur la façon de créer une vignette captures d'écran et je n'ai pas trouvé quelque chose de fiable.
Est-il une api, j'suffit de saisir l'url du site web que je veux prendre une capture d'écran et de le faire retourner comme une image à l'aide de PHP?
combien de vignettes avez-vous besoin pour générer? ne vous vous souciez si vous utilisez un service externe? êtes-vous prêt à payer si nec? ou avez-vous besoin de cette fonctionnalité en cours d'exécution sur vos propres serveurs?
ApiFlash est assez fiable et a un en PHP par exemple.
ApiFlash est assez fiable et a un en PHP par exemple.
OriginalL'auteur Keith Donegan | 2010-11-20
Vous devez vous connecter pour publier un commentaire.
Découvrez http://www.thumbalizr.com/apitools.php
Voici un exemple: http://api.thumbalizr.com/?url=http://www.google.com.au&largeur=250
Il est très facile à utiliser, et possède un plan gratuit pour les petits cas d'utilisation avec d'autres plans qui devraient satisfaire les plus avancés ou les besoins exigeants. Bien sûr, il y a des centaines d'autres services. Mais Thumbalizer est le plus populaire (selon Google) et est très facile à utiliser.
Ouais, tous les services de ce genre sont assez exigeantes en ressources, et la plupart des services gratuits ne sera pas très fiable. Si les ressources le permettent, il est toujours préférable de rouler votre propre. Mais pour la plupart des cas d'utilisation, c'est trop compliqué et pas la peine. Cet espace pourrait certainement utiliser avec un peu plus robuste et fiable des outils.
Si vous ajoutez à rouler, que ferais-tu pour le faire? Je sais à propos de PhantomJS, mais qui nécessitent l'exécution de quelque chose comme NodeJS obthe côté serveur (puisque nous sommes de la construction d'une API). Serait bien de trouver quelque chose que nous pourrions utiliser à partir de l'Aller.
OriginalL'auteur
Vous seriez surpris de voir combien capture d'écran d'automatisation Api il y a: en Voici un joli petit article comparaison des cinq principaux fournisseurs: Capture d'écran de l'API Site de Comparaison.
De grandes différences entre les Api sont le coût par capture d'écran, la vitesse de rendu et de la qualité de l'image, et la plupart d'entre eux de retour de la capture d'écran directement via l'URL de la requête.
Plus, il y a un Exemple de code PHP sur le même site.
OriginalL'auteur Friendly Crook
vous pouvez utiliser http://www.screenshotmachine.com service. Il a un simple HTTP OBTENIR la fonction de l'API. Ici est la page de documentation: http://www.screenshotmachine.com/apiguide.php
OriginalL'auteur kvas
Vous pouvez faire une capture d'écran de l'API:
PhantomJS
ou:
SlimerJS
OriginalL'auteur Petar Vasilev
Il y a beaucoup de projets open source qui peut générer des site web des captures d'écran et des vignettes qui peuvent être appelées à partir de PHP. Par exemple, PhantomJS, webkit2png etc
Le gros problème avec ces projets est qu'ils sont basés sur navigateur plus ancien de la technologie et ont des problèmes de rendu de nombreux sites, notamment les sites qui utilisent des polices web, flexbox, svg et divers autres ajouts pour le HTML5 et le CSS au cours de la dernière quelques mois/années.
J'en ai essayé quelques-uns des services de tiers, et la plupart sont basées sur PhantomJS, ce qui signifie qu'ils produisent aussi de la mauvaise qualité des captures d'écran. Le meilleur service tiers pour générer des site web des captures d'écran est urlbox.io. C'est un service payant, bien qu'il y a un essai gratuit de 7 jours pour le tester sans commettre d'un plan.
Voici un lien vers la documentation, et ci-dessous sont les étapes simples pour le faire en PHP avec le compositeur. Si vous n'êtes pas à l'aide de compositeur, il suffit de copier le code de la dépôt github
Pour, par exemple, voici un urlbox url qui va générer une hauteur capture d'écran de cette page:
https://api.urlbox.io/v1/ca482d7e-9417-4569-90fe-80f7c5e1c781/0ad1be1ff7ac16bc295d8b0207c98e776003e53e/png?url=http%3A%2F%2Fstackoverflow.com%2Fquestions%2F4235638%2Fhow-to-take-thumbnail-screenshots-of-websites-using-php&full_page=true&thumb_width=400
et voici le résultat de la capture d'écran (fortement compressé via imgur :/)
OriginalL'auteur cjroebuck
wget peut vous rendre où vous voulez être. si vous pouvez l'obtenir à un terminal, websnapr.com est assez facile à utiliser. vous aurez envie de vous inscrire pour une clé, mais ils sont assez simple à utiliser.
OriginalL'auteur Chris
Bien, PhantomJS est un navigateur qui peut facilement être mis sur un serveur et de les intégrer à php. Vous pouvez trouver le code dans WDudes. Ils ont beaucoup plus de fonctionnalités, comme la spécification de la taille de l'image, le cache, le téléchargement d'un fichier ou d'affichage dans img src etc.
Paramètres d'URL
La largeur et la Hauteur: capture d'écran.le php?url=google.com&w=1000&h=800
Avec des cultures:
capture d'écran.le php?url=google.com&w=1000&h=800&clipw=800&cliph=600
De désactiver le cache et la charge de nouveaux screesnhot:
capture d'écran.le php?url=google.com&cache=0
Pour télécharger l'image au lieu de l'affichage:
capture d'écran.le php?url=google.com&download=true
Vous pouvez voir le tutoriel ici: Capture d'écran d'un Site web en utilisant PHP sans API
OriginalL'auteur Gijo Varghese
Je voulais ajouter une autre option pour le mix, un service que j'ai construit pour ce qui est gratuit pour un usage basique - URL Sensei. Il fournit une API de sorte que vous pouvez faire des demandes pour obtenir la copie d'écran des Url qui sont hébergés sur un CDN pour vous. Il est construit à l'aide de Fantôme/SlimerJS - mais le plus difficile a été rapide et la compression de manière fiable. Laissez-moi savoir ce que vous en pensez!
OriginalL'auteur Nami Yamamoto