Maison interface Web js tutoriel Tutoriel de démarrage rapide PhantomJS (API WebKit JavaScript côté serveur)_compétences javascript

Tutoriel de démarrage rapide PhantomJS (API WebKit JavaScript côté serveur)_compétences javascript

May 16, 2016 pm 03:46 PM
phantomjs 快速入门

PhantomJS est une API JavaScript côté serveur basée sur WebKit. Il prend entièrement en charge le Web sans nécessiter la prise en charge du navigateur, et il est rapide et prend en charge nativement diverses normes Web : traitement DOM, sélecteurs CSS, JSON, Canvas et SVG. PhantomJS peut être utilisé pour l'automatisation des pages, la surveillance du réseau, les captures d'écran de pages Web et les tests sans interface, etc.

Site officiel de PhantomJs : http://phantomjs.org/
GitHub :https://github.com/ariya/phantomjs/wiki/Quick-Start

1.Installation

Adresse de téléchargement du package d'installation : http://phantomjs.org/download.html, y compris les versions Windows, Mac OS et Linux. Vous pouvez choisir la version correspondante à télécharger et décompresser (pour plus de commodité, vous pouvez définir des variables d'environnement pour phantomjs), qui contient un dossier d'exemple avec beaucoup de code déjà écrit à utiliser. Cet article suppose que phantomjs a été installé et que les variables d'environnement ont été définies.

2. Utiliser

Bonjour le monde !

Créez un nouveau fichier texte contenant les deux lignes de script suivantes :

console.log('Hello, world!');
phantom.exit();
Copier après la connexion

Enregistrez le fichier sous hello.js et exécutez-le :

phantomjs bonjour.js

Le résultat de sortie est : Bonjour tout le monde !

La première ligne imprimera la chaîne dans le terminal et la deuxième ligne phantom.exit quittera l'opération.
Il est très important d'appeler phantom.exit dans ce script, sinon PhantomJS ne s'arrêtera pas du tout.

Arguments de script – Arguments de script

Comment passer des paramètres dans Phantomjs ? Comme indiqué ci-dessous :

Copier le code Le code est le suivant :

phantomjs exemples/arguments.js foo bar baz

Foo, bar, baz sont les paramètres à passer. Comment les obtenir :

var system = require('system');
if (system.args.length === 1) {
 console.log('Try to pass some args when invoking this script!');
} else {
 system.args.forEach(function (arg, i) {
   console.log(i + ': ' + arg);
 });
}
phantom.exit();
Copier après la connexion

Il affichera :

0 : foo
1 : barre
2 : baz

Chargement de la page – Chargement de la page

En créant un objet de page Web, une page Web peut être chargée, analysée et rendue.

Le script suivant utilise l'exemple d'objet page dans sa forme la plus simple. Il charge example.com et l'enregistre sous forme d'image, example.png .

var page = require('webpage').create();
page.open('http://example.com', function () {
 page.render('example.png');
 phantom.exit();
});
Copier après la connexion

Grâce à cette fonctionnalité, PhantomJS peut être utilisé pour prendre des captures d'écran de pages Web et prendre des instantanés de certains contenus, comme l'enregistrement de pages Web et de SVG sous forme d'images, de PDF, etc. Cette fonction est géniale.

Le prochain script loadspeed.js charge une URL spéciale (n'oubliez pas le protocole http) et mesure le temps nécessaire pour charger la page.

var page = require('webpage').create(),
 system = require('system'),
 t, address;

if (system.args.length === 1) {
 console.log('Usage: loadspeed.js <some URL>');
 phantom.exit();
}

t = Date.now();
address = system.args[1];
page.open(address, function (status) {
 if (status !== 'success') {
  console.log('FAIL to load the address');
 } else {
  t = Date.now() - t;
  console.log('Loading time ' + t + ' msec');
 }
 phantom.exit();
});
Copier après la connexion

Exécutez ce script depuis la ligne de commande :

phantomjs loadspeed.js http://www.google.com
Cela donne quelque chose comme :

Chargement http://www.google.com Temps de chargement 719 ms

Évaluation du code – Évaluation du code

Pour évaluer JavaScript ou CoffeeScript dans le contexte d'une page Web, utilisez la méthode évaluer(). Le code s'exécute dans un "bac à sable" et n'a aucun moyen de lire des objets et variables JavaScript en dehors du contexte de la page à laquelle il appartient. évalue() renvoie un objet, mais il est limité aux objets simples et ne peut pas contenir de méthodes ou de fermetures.

Voici un exemple pour afficher le titre de la page :

var page = require('webpage').create();
page.open(url, function (status) {
 var title = page.evaluate(function () {
  return document.title;
 });
 console.log('Page title is ' + title);
});
Copier après la connexion

Toutes les informations de console de la page Web et y compris le code d'evaluate() ne seront pas affichées par défaut. Pour remplacer ce comportement, utilisez la fonction de rappel onConsoleMessage. L'exemple précédent peut être réécrit comme suit :

.
var page = require('webpage').create();
page.onConsoleMessage = function (msg) {
 console.log('Page title is ' + msg);
};
page.open(url, function (status) {
 page.evaluate(function () {
  console.log(document.title);
 });
});
Copier après la connexion

Manipulation DOM – Manipulation DOM

Étant donné que le script s'exécute comme s'il s'agissait d'un navigateur Web, les scripts DOM standard et les sélecteurs CSS fonctionnent correctement. Cela rend PhantomJS adapté à la prise en charge d'une variété de tâches d'automatisation de pages.

Le useragent.js suivant lira l'attribut textContent de l'élément avec l'identifiant myagent :

var page = require('webpage').create();
console.log('The default user agent is ' + page.settings.userAgent);
page.settings.userAgent = 'SpecialAgent';
page.open('http://www.httpuseragent.org', function (status) {
 if (status !== 'success') {
  console.log('Unable to access network');
 } else {
  var ua = page.evaluate(function () {
   return document.getElementById('myagent').textContent;
  });
  console.log(ua);
 }
 phantom.exit();
});
Copier après la connexion

L'exemple ci-dessus fournit également un moyen de personnaliser l'agent utilisateur.

Utilisez JQuery et d'autres bibliothèques :

var page = require('webpage').create();
page.open('http://www.sample.com', function() {
 page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
  page.evaluate(function() {
   $("button").click();
  });
  phantom.exit()
 });
});
Copier après la connexion

Demandes et réponses réseau – Demandes et réponses réseau

Lorsqu'une page demande une ressource à un serveur distant, la demande et la réponse peuvent être suivies via les méthodes de rappel onResourceRequested et onResourceReceived. Exemple netlog.js :

var page = require('webpage').create();
page.onResourceRequested = function (request) {
 console.log('Request ' + JSON.stringify(request, undefined, 4));
};
page.onResourceReceived = function (response) {
 console.log('Receive ' + JSON.stringify(response, undefined, 4));
};
page.open(url);
Copier après la connexion

Pour plus d'informations sur l'utilisation de cette fonctionnalité pour la sortie HAR et l'analyse des performances basée sur YSlow, veuillez vous référer à la Page de surveillance du réseau.

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Apprentissage Python : Comment installer la bibliothèque pandas dans le système Apprentissage Python : Comment installer la bibliothèque pandas dans le système Jan 09, 2024 pm 04:42 PM

Démarrage rapide : comment installer la bibliothèque pandas dans Python nécessite des exemples de code spécifiques 1. Présentation Python est un langage de programmation largement utilisé avec un puissant écosystème de développement qui comprend de nombreuses bibliothèques pratiques. Pandas est l'une des bibliothèques d'analyse de données les plus populaires. Elle fournit des structures de données et des outils d'analyse de données efficaces, facilitant le traitement et l'analyse des données. Cet article explique comment installer la bibliothèque pandas en Python et fournit des exemples de code correspondants. 2. Installez Py

Démarrage rapide avec la bibliothèque d'animation Mojs : un guide du module Explosion Démarrage rapide avec la bibliothèque d'animation Mojs : un guide du module Explosion Sep 02, 2023 pm 11:49 PM

Nous commençons cette série en apprenant à animer des éléments HTML à l'aide de mojs. Dans ce deuxième tutoriel, nous continuons à utiliser le module Shape pour animer les formes SVG intégrées. Le troisième didacticiel couvre d'autres façons d'animer des formes SVG à l'aide de ShapeSwirl et du module stagger. Nous allons maintenant apprendre à animer différentes formes SVG en rafales à l'aide du module Burst. Ce tutoriel dépendra des concepts que nous avons abordés dans les trois premiers tutoriels. Si vous ne les avez pas encore lus, je vous recommande de les lire d'abord. Création d'une animation en rafale de base La première chose que nous devons faire avant de créer une animation en rafale est d'instancier un objet Burst. Ensuite, nous pouvons spécifier différentes propriétés

Démarrage rapide : utilisez les fonctions du langage Go pour implémenter un service de streaming audio simple Démarrage rapide : utilisez les fonctions du langage Go pour implémenter un service de streaming audio simple Jul 29, 2023 pm 11:45 PM

Démarrage rapide : utilisez les fonctions du langage Go pour implémenter un service de streaming audio simple Introduction : Les services de streaming audio sont de plus en plus populaires dans le monde numérique d'aujourd'hui, ce qui nous permet de lire des fichiers audio directement sur le réseau sans effectuer de téléchargement complet. Cet article explique comment utiliser les fonctions du langage Go pour implémenter rapidement un service de streaming audio simple afin que vous puissiez mieux comprendre et utiliser cette fonction. Étape 1 : Préparation Tout d'abord, vous devez installer l'environnement de développement du langage Go. Vous pouvez le télécharger sur le site officiel (https://golan

Démarrage rapide : utilisez les fonctions du langage Go pour implémenter des fonctions simples de reconnaissance d'images Démarrage rapide : utilisez les fonctions du langage Go pour implémenter des fonctions simples de reconnaissance d'images Jul 30, 2023 pm 09:49 PM

Démarrage rapide : utilisez les fonctions du langage Go pour implémenter des fonctions simples de reconnaissance d'images. Dans le développement technologique actuel, la technologie de reconnaissance d'images est devenue un sujet brûlant. En tant que langage de programmation rapide et efficace, le langage Go a la capacité d'implémenter des fonctions de reconnaissance d'images. Cet article fournira aux lecteurs un guide de démarrage rapide en utilisant les fonctions du langage Go pour implémenter des fonctions simples de reconnaissance d'images. Tout d’abord, nous devons installer l’environnement de développement du langage Go. Vous pouvez télécharger la version appropriée sur le site officiel de Go Language (https://golang.org/)

Recommandez cinq frameworks couramment utilisés en langage Go pour vous aider à démarrer rapidement Recommandez cinq frameworks couramment utilisés en langage Go pour vous aider à démarrer rapidement Feb 24, 2024 pm 05:09 PM

Titre : Démarrez rapidement : cinq cadres de langage Go courants recommandés Ces dernières années, avec la popularité du langage Go, de plus en plus de développeurs ont choisi d'utiliser Go pour le développement de projets. Le langage Go a reçu une large attention pour son efficacité, sa simplicité et ses performances supérieures. Dans le développement du langage Go, le choix d'un framework approprié peut améliorer l'efficacité du développement et la qualité du code. Cet article présentera cinq frameworks couramment utilisés dans le langage Go et joindra des exemples de code pour aider les lecteurs à démarrer rapidement. Framework Gin Gin est un framework Web léger, rapide et efficace.

Apprenez à démarrer rapidement en utilisant cinq outils de visualisation Kafka Apprenez à démarrer rapidement en utilisant cinq outils de visualisation Kafka Jan 31, 2024 pm 04:32 PM

Démarrage rapide : un guide d'utilisation de cinq outils de visualisation Kafka 1. Outils de surveillance Kafka : Introduction Apache Kafka est un système de messagerie distribué de publication-abonnement qui peut gérer de grandes quantités de données et fournir un débit élevé et une faible latence. En raison de la complexité de Kafka, des outils de visualisation sont nécessaires pour faciliter la surveillance et la gestion des clusters Kafka. 2.Outils de visualisation Kafka : cinq choix majeurs KafkaManager : KafkaManager est une communauté web open source

Utilisation de Selenium et PhantomJS dans le robot Scrapy Utilisation de Selenium et PhantomJS dans le robot Scrapy Jun 22, 2023 pm 06:03 PM

Utilisation de Selenium et PhantomJSScrapy dans le robot d'exploration Scrapy Scrapy est un excellent framework de robot d'exploration Web sous Python et a été largement utilisé dans la collecte et le traitement de données dans divers domaines. Dans la mise en œuvre du robot, il est parfois nécessaire de simuler les opérations du navigateur pour obtenir le contenu présenté par certains sites Web. Dans ce cas, Selenium et PhantomJS sont nécessaires. Selenium simule les opérations humaines sur le navigateur, nous permettant d'automatiser les tests d'applications Web

Démarrage rapide : utilisez les fonctions du langage Go pour implémenter un affichage simple de graphiques linéaires de visualisation de données Démarrage rapide : utilisez les fonctions du langage Go pour implémenter un affichage simple de graphiques linéaires de visualisation de données Jul 30, 2023 pm 04:01 PM

Démarrage rapide : utilisez les fonctions du langage Go pour implémenter un affichage simple de graphiques linéaires de visualisation de données Introduction : Dans le domaine de l'analyse et de la visualisation des données, les graphiques linéaires sont un type de graphique couramment utilisé qui peut montrer clairement la tendance des changements de données au fil du temps ou d'autres variables. Cet article expliquera comment utiliser les fonctions du langage Go pour implémenter un affichage simple de graphique linéaire de visualisation de données et fournira des exemples de code pertinents. 1. Avant de commencer le travail de préparation, vous devez vous assurer des conditions suivantes : installer l'environnement linguistique Go et définir les variables d'environnement pertinentes. Installer les dépendances nécessaires

See all articles