Kernpunkte
- Phantomjs, ein webkit-basierter Kopflosenbrowser, der eine schnellere programmatische Automatisierung und das Testen von Webseiten ermöglicht, ohne dass eine grafische Benutzeroberfläche erforderlich ist.
- Phantomjs bietet leistungsstarke Funktionen wie die Möglichkeit, über JavaScript mit Seiten zu interagieren, um eine einfache Automatisierung von Aufgaben wie Klicken auf Schaltflächen, Senden von Formularen und sogar das Laden und Manipulieren von Webseiten mit Bibliotheken wie Standard -DOM -API oder JQuery zu ermöglichen.
- Phantomjs bietet eine umfangreiche Dateisystem -API, mit der Anwendungen Quellcode für das Dateisystem speichern, Screenshots von Webseiten aufnehmen und sogar externe Skriptdateien in Seiten einbeziehen können.
- Obwohl Phantomjs leistungsstark ist, ist es nicht sehr integriert in Node.js.
Wenn Sie diesen Artikel lesen, werden Sie höchstwahrscheinlich wissen, was ein Browser ist. Entfernen Sie nun die GUI und Sie erhalten den sogenannten kopflosen Browser . Ein kopfloser Browser kann dieselben Dinge wie ein normaler Browser tun, aber er ist schneller. Sie eignen sich perfekt für die programmgestützte Automatisierung und Testen von Webseiten. Derzeit gibt es viele kopflose Browser, und Phantomjs ist die beste unter ihnen. Phantomjs basiert auf Webkit, dem Motor hinter Chrome und Safari und bietet Ihnen leistungsstarke Browserfunktionen, ohne dass eine sperrige GUI erforderlich ist. Der Einstieg mit Phantomjs ist einfach - laden Sie einfach die ausführbare Datei herunter. Erstellen Sie als Nächstes eine Datei mit dem Namen hello.js und fügen Sie die folgenden Codezeilen hinzu:
console.log("Hello World!"); phantom.exit();
Um das Skript auszuführen, führen Sie den folgenden Befehl aus. Beachten Sie, dass die ausführbaren Phantomjs im aktuellen Verzeichnis oder irgendwo im Weg der Umgebung liegen müssen. Wenn alles korrekt konfiguriert ist, druckt Phantomjs "Hello World!" Zur Konsole und endet, wenn Phantom.exit () aufgerufen wird.
phantomjs hello.js
Verwenden Sie die Webseite
Nachdem Phantomjs ausgeführt wurde, können Sie das Web automatisieren. Das folgende Beispiel lädt die Google -Startseite und speichert den Screenshot in einer Datei. Zeile 1 erstellt eine neue Instanz der Webseite. Zeile 4 lädt Google.com. Nachdem die Seite geladen wurde, wird die Rückruffunktion für Onloadfineished () ausgeführt. Die Rückruffunktion empfängt einen einzelnen Parameterstatus, der angibt, ob die Seite erfolgreich geladen wird. Die URL zum Laden der Seite ist auf Seite.url verfügbar. Diese Eigenschaft ist besonders nützlich, wenn die Seite Weiterleitungen enthält, und Sie möchten genau wissen, wo Sie sich befinden. Zeile 8 verwendet die Render () -Methode der Seite, um einen Screenshot zu machen. Render () kann PNG-, GIF-, JPEG- und PDF -Dateien erstellen.
console.log("Hello World!"); phantom.exit();
Seiteneinstellungen
Viele Einstellungen von Seitenobjekten können gemäß den Anforderungen der Anwendung angepasst werden. Wenn Sie beispielsweise nur daran interessiert sind, Quellcode herunterzuladen, können Sie Ihre Anwendung beschleunigen, indem Sie die Bilddatei ignorieren und JavaScript schließen. Das folgende Umschreiben -Beispiel spiegelt diese Änderungen wider. Die geänderten Einstellungen werden in den Zeilen 3 und 4 angezeigt. Beachten Sie, dass alle Einstellungsänderungen vor dem Aufrufen von Open () vorgenommen werden müssen. Wenn Sie sich den Screenshot dieses Beispiels ansehen, werden Sie feststellen, dass das Google -Logo -Bild fehlt, der Rest der Seite bleibt jedoch gleich.
phantomjs hello.js
Zugriff auf das Dateisystem
Bisher hat unser Beispiel die Seite geladen und den Screenshot als Bilddatei gespeichert. Während dies zweifellos cool ist, bevorzugen viele Anwendungen, Quellcode in ein Dateisystem zu speichern. Phantomjs macht dies durch eine breite Palette von Dateisystem -APIs. Das folgende Beispiel verwendet das Dateisystemmodul, um Google.com -Quellcode in eine Datei zu schreiben. Importieren Sie zunächst das Dateisystemmodul in Zeile 2. Öffnen Sie in Zeile 6 die Ausgabedatei zum Schreiben. Verwenden Sie in Zeile 7 die Methode write (), um die Daten in die Datei zu schreiben. Der tatsächliche Quellcode kann über die Inhaltseigenschaft der Seite erhalten werden. Schließlich schließen Sie die Datei und beenden Sie Phantomjs.
var page = require("webpage").create(); var homePage = "http://www.google.com/"; page.open(homePage); page.onLoadFinished = function(status) { var url = page.url; console.log("Status: " + status); console.log("Loaded: " + url); page.render("google.png"); phantom.exit(); };
Führen Sie JavaScript
ausEines der leistungsstärksten Merkmale von Phantomjs ist die Fähigkeit, über JavaScript mit Seiten zu interagieren. Dies erleichtert es extrem einfach, Aufgaben wie Klicken auf Schaltflächen und das Senden von Formularen zu automatisieren. Unser nächstes Beispiel führt eine Websuche durch, indem die Google -Homepage geladen, eine Abfrage eingegeben und ein Suchformular gesendet wird. Der Beginn des Beispiels sollte bekannt aussehen. Der neue Inhalt beginnt in Zeile 8 und wir bestimmen, welche Seite geladen wurde. Wenn dies die Startseite ist, wird die Methode Evaluate () der Seite aufgerufen. Evaluate () führt den Code aus, den Sie im Kontext der Seite bereitstellen. Dies gibt Ihnen tatsächlich die gleichen Berechtigungen wie der ursprüngliche Entwickler der Seite. Wie cool ist das?
var page = require("webpage").create(); var homePage = "http://www.google.com/"; page.settings.javascriptEnabled = false; page.settings.loadImages = false; page.open(homePage); page.onLoadFinished = function(status) { var url = page.url; console.log("Status: " + status); console.log("Loaded: " + url); page.render("google.png"); phantom.exit(); };
Inside Evaluation () finden wir das Suchfeld und das Formular. Wir setzen den Wert des Suchfelds auf "JSPRO" und reichen das Formular ein. Dies führt dazu, dass die Onloadfineed () -Methode der Seite erneut abgefeuert wird. Diesmal werden jedoch Screenshots der Suchergebnisse genommen, und Phantomjs beenden. PhantomJs bietet auch zwei Methoden, einschließlich Js () und InjectJS (), mit denen Sie einer Seite externe Skriptdateien hinzufügen können. Includejs () wird verwendet, um jede Skriptdatei aufzunehmen, auf die von der Seite zugegriffen werden kann. Sie können beispielsweise den folgenden Code verwenden, um JQuery in das vorherige Beispiel einzubeziehen. Beachten Sie, dass der Anruf in Zeile 9 und die JQuery -Syntax in Evaluate () einbezogen wird.
var page = require("webpage").create(); var fs = require("fs"); var homePage = "http://www.google.com/"; page.open(homePage); page.onLoadFinished = function(status) { var file = fs.open("output.htm", "w"); file.write(page.content); file.close(); phantom.exit(); };Die Methode
injectjs () ähnelt includejs (). Der Unterschied besteht darin, dass auf die injizierte Skriptdatei nicht über das Seitenobjekt zugegriffen werden muss. Auf diese Weise können Sie beispielsweise Skripte aus Ihrem lokalen Dateisystem injizieren.
phantomjs und node.js
Leider wurde Phantomjs nicht in node.js. Einige Projekte wurden erstellt, um zu versuchen, Phantomjs von Node.js zu kontrollieren, aber sie sind alle etwas ungeschickt. Bestehende Projekte verwenden untergeordnete Prozessmodule, um Phantomjs -Instanzen zu generieren. Als nächstes lädt Phantomjs eine spezielle Webseite, die mit node.js mithilfe von Websockets kommuniziert. Es mag nicht ideal sein, aber es funktioniert. Zwei weitere beliebte Phantomjs-Knotenmodule sind Knotenphantom und Phantomjs-Node. Ich habe kürzlich angefangen, mein eigenes Phantomjs -Knotenmodul namens Ghostbuster zu entwickeln. Ghostbuster ähnelt dem Knotenphantom, versucht jedoch, die Rückrufverschachtel durch leistungsfähigere Befehle zu verringern. Je weniger Anrufe bei Phantomjs, desto weniger Zeit verschwenden Sie Kommunikation auf Websockets. Eine weitere Option ist Zombie.js, ein leichter, kopfloser Browser, der auf JSDOM gebaut wurde. Zombie ist nicht so mächtig wie Phantomjs, aber es ist ein echtes Node.js -Modul.
Schlussfolgerung
Nach dem Lesen dieses Artikels sollten Sie ein grundlegendes Verständnis von Phantomjs haben. Eine der besten Merkmale von Phantomjs ist die Benutzerfreundlichkeit. Wenn Sie mit JavaScript bereits vertraut sind, ist die Lernkurve klein. Phantomjs unterstützt auch verschiedene andere Funktionen, die in diesem Artikel nicht behandelt werden. Wie immer ermutige ich Sie, die Dokumentation anzusehen. Es gibt auch einige Beispiele, die die volle Funktionalität von Phantomjs zeigen!
FAQs über Kopflosen Webkit und Phantomjs
Was ist der Hauptunterschied zwischen kopflosen Webkit und Phantomjs?
Headless Webkit und PhantomJs sind beide Tools zur Automatisierung von Webbrowsern. Der Hauptunterschied ist jedoch ihre Funktion. Headless Webkit ist ein Browser ohne grafische Benutzeroberfläche, die es programmgesteuert für die Automatisierung, das Testen und die serverseitige Renderung steuern kann. Phantomjs hingegen ist ein kriptierbarer kopfloser Browser zur Automatisierung von Web -Interaktionen und bietet JavaScript -APIs, die automatisierte Navigation, Screenshots, Benutzerverhalten und Behauptungen unterstützen.
Ist Phantomjs noch aufrechterhalten?
Ab März 2018 wurde Phantomjs nicht mehr aktiv aufrechterhalten. Der Hauptgrund ist die Entstehung moderner, kopfloser Browser wie Chrome Headless Browsers und Firefox Headless Browsers, die mehr Funktionen und bessere Unterstützung bieten.
Was sind einige Alternativen zu Phantomjs?
Da Phantomjs nicht mehr aufrechterhalten wird, treten einige Alternativen auf. Dazu gehören Puppeteer, eine Knotenbibliothek, die eine API auf hoher Ebene zur Steuerung von Chrom oder Chrom über das Devtools-Protokoll und Selenium WebDriver bietet, eine Open-Source-Sammlung von APIs für automatisierte Testen von Webanwendungen.
Wie funktioniert Phantomjs?
Phantomjs arbeitet durch Bereitstellung einer JavaScript -API, die automatisierte Navigation, Screenshots, Benutzerverhalten und Behauptungen unterstützt. Es handelt sich um ein skriptierbares, kopfloser Webkit, das die JavaScript -API verwendet. Es bietet eine schnelle und native Unterstützung für eine Vielzahl von Webstandards: DOM -Verarbeitung, CSS -Selektor, JSON, Canvas und SVG.
Kann ich Phantomjs für das Webkriechen verwenden?
Ja, Phantomjs können zum Webkriechen verwendet werden. Sie können Webseiten mit gemeinsamen Bibliotheken wie Standard -DOM -API oder JQuery laden und manipulieren.
Wie installiere ich Phantomjs?
PhantomJs können über NPM (Knotenpaketmanager) installiert werden. Sie können den Befehl "NPM Phantomjs" im Terminal oder in der Eingabeaufforderung verwenden.
Welche Rolle spielt der kopflose Webkit beim serverseitigen Rendering?
Headless Webkit spielt eine entscheidende Rolle beim serverseitigen Rendering, da der Server Javascript-renderierte Seiten vorrenderen, sie in HTML konvertieren und dann an den Client senden. Dies verbessert die Leistung und SEO Ihrer Webanwendung.
Kann ich Headless Webkit für automatisierte Tests verwenden?
Ja, Headless Webkit ist ein hervorragendes Tool für automatisierte Tests. Sie können Tests in einer echten Browserumgebung ausführen, ohne dass eine sichtbare Benutzeroberfläche erforderlich ist.
Wie installiere ich Headless Webkit?
Der Installationsprozess von Headless WebKit hängt von dem spezifischen Tool ab, das Sie verwenden. Wenn Sie beispielsweise Puppeteer verwenden, können Sie es über NPM mit dem Befehl "NPM installieren puppeteerer" installieren.
Was sind die Vorteile der Verwendung von Kopflosen Webkit im Vergleich zu herkömmlichen automatisierten Browsern?
Headless Webkit hat mehrere Vorteile gegenüber herkömmlichen Browsern in der Automatisierung. Es ist schneller, weil es keine Zeit braucht, um das Bild zu machen. Es ermöglicht auch automatisiertes, skriptierbares Surfen, das sehr nützlich für das Testen und das Webkriechen ist.
Das obige ist der detaillierte Inhalt vonKopfloses Webkit und Phantomjs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

JavaScript kann für die Entwicklung von Front-End- und Back-End-Entwicklung verwendet werden. Das Front-End verbessert die Benutzererfahrung durch DOM-Operationen, und die Back-End-Serveraufgaben über node.js. 1. Beispiel für Front-End: Ändern Sie den Inhalt des Webseitentextes. 2. Backend Beispiel: Erstellen Sie einen Node.js -Server.

Die Auswahl von Python oder JavaScript sollte auf Karriereentwicklung, Lernkurve und Ökosystem beruhen: 1) Karriereentwicklung: Python ist für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet, während JavaScript für die Entwicklung von Front-End- und Full-Stack-Entwicklung geeignet ist. 2) Lernkurve: Die Python -Syntax ist prägnant und für Anfänger geeignet; Die JavaScript -Syntax ist flexibel. 3) Ökosystem: Python hat reichhaltige wissenschaftliche Computerbibliotheken und JavaScript hat ein leistungsstarkes Front-End-Framework.

Die Kraft des JavaScript -Frameworks liegt in der Vereinfachung der Entwicklung, der Verbesserung der Benutzererfahrung und der Anwendungsleistung. Betrachten Sie bei der Auswahl eines Frameworks: 1. Projektgröße und Komplexität, 2. Teamerfahrung, 3. Ökosystem und Community -Unterstützung.

Einführung Ich weiß, dass Sie es vielleicht seltsam finden. Was genau muss JavaScript, C und Browser tun? Sie scheinen nicht miteinander verbunden zu sein, aber tatsächlich spielen sie eine sehr wichtige Rolle in der modernen Webentwicklung. Heute werden wir die enge Verbindung zwischen diesen drei diskutieren. In diesem Artikel erfahren Sie, wie JavaScript im Browser ausgeführt wird, die Rolle von C in der Browser -Engine und wie sie zusammenarbeiten, um das Rendern und die Interaktion von Webseiten voranzutreiben. Wir alle kennen die Beziehung zwischen JavaScript und Browser. JavaScript ist die Kernsprache der Front-End-Entwicklung. Es läuft direkt im Browser und macht Webseiten lebhaft und interessant. Haben Sie sich jemals gefragt, warum Javascr

Node.js zeichnet sich bei effizienten E/A aus, vor allem bei Streams. Streams verarbeiten Daten inkrementell und vermeiden Speicherüberladung-ideal für große Dateien, Netzwerkaufgaben und Echtzeitanwendungen. Die Kombination von Streams mit der TypeScript -Sicherheit erzeugt eine POWE

Die Unterschiede in der Leistung und der Effizienz zwischen Python und JavaScript spiegeln sich hauptsächlich in: 1 wider: 1) Als interpretierter Sprache läuft Python langsam, weist jedoch eine hohe Entwicklungseffizienz auf und ist für eine schnelle Prototypentwicklung geeignet. 2) JavaScript ist auf einen einzelnen Thread im Browser beschränkt, aber Multi-Threading- und Asynchronen-E/A können verwendet werden, um die Leistung in Node.js zu verbessern, und beide haben Vorteile in tatsächlichen Projekten.

JavaScript stammt aus dem Jahr 1995 und wurde von Brandon Ike erstellt und realisierte die Sprache in C. 1.C-Sprache bietet Programmierfunktionen auf hoher Leistung und Systemebene für JavaScript. 2. Die Speicherverwaltung und die Leistungsoptimierung von JavaScript basieren auf C -Sprache. 3. Die plattformübergreifende Funktion der C-Sprache hilft JavaScript, auf verschiedenen Betriebssystemen effizient zu laufen.

JavaScript wird in Browsern und Node.js -Umgebungen ausgeführt und stützt sich auf die JavaScript -Engine, um Code zu analysieren und auszuführen. 1) abstrakter Syntaxbaum (AST) in der Parsenstufe erzeugen; 2) AST in die Kompilierungsphase in Bytecode oder Maschinencode umwandeln; 3) Führen Sie den kompilierten Code in der Ausführungsstufe aus.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version
