PhantomJS は、WebKit に基づくサーバーサイド JavaScript API です。ブラウザーのサポートを必要とせずに Web を完全にサポートし、高速でさまざまな Web 標準 (DOM 処理、CSS セレクター、JSON、Canvas、SVG) をネイティブにサポートします。 PhantomJS は、ページ自動化、ネットワーク監視、Web ページのスクリーンショット、インターフェイスレス テストなどに使用できます。
PhantomJs 公式ウェブサイト: http://phantomjs.org/
GitHub:https://github.com/ariya/phantomjs/wiki/クイックスタート
1. インストール
インストール パッケージのダウンロード アドレス: http://phantomjs.org/download.html (Windows、Mac OS、Linux バージョンを含む) 対応するバージョンを選択してダウンロードして解凍できます (便宜上、 phantomjs の環境変数を設定できます)。これには、使用するために既に記述されたコードが多数含まれるサンプル フォルダーがあります。この記事では、phantomjs がインストールされ、環境変数が設定されていることを前提としています。
2.
を使用します。こんにちは、世界!
次の 2 行のスクリプトを含む新しいテキスト ファイルを作成します:
console.log('Hello, world!'); phantom.exit();
ファイルを hello.js として保存し、実行します。
phantomjs hello.js
出力結果は次のとおりです: Hello, world!
最初の行は端末に文字列を出力し、2 行目の phantom.exit は操作を終了します。
このスクリプトで phantom.exit を呼び出すことが非常に重要です。そうしないと、PhantomJS がまったく停止しません。
スクリプト引数 – スクリプト引数
Phantomjs でパラメータを渡すにはどうすればよいですか?以下に示すように:
phantomjs 例/arguments.js foo bar baz
Foo、bar、baz は渡されるパラメータです。それらの取得方法:
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();
次のように出力されます:
0: フー
1: バー
2: バズ
ページの読み込み – ページの読み込み
Web ページ オブジェクトを作成すると、Web ページをロード、分析、レンダリングできます。
次のスクリプトは、サンプル ページ オブジェクトを最も単純な形式で使用し、example.com を読み込み、画像 example.png として保存します。
var page = require('webpage').create(); page.open('http://example.com', function () { page.render('example.png'); phantom.exit(); });
この機能により、PhantomJS を使用して、Web ページのスクリーンショットを撮ったり、Web ページや SVG を画像や PDF などとして保存したりするなど、一部のコンテンツのスナップショットを撮ることができます。この機能は素晴らしいです。
次のloadspeed.jsスクリプトは、特別なURL(httpプロトコルを忘れないでください)をロードし、ページのロードにかかる時間を測定します。
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(); });
コマンドラインから次のスクリプトを実行します:
phantomjsloadspeed.js http://www.google.com
次のようなものが出力されます:
http://www.google.com の読み込み中 読み込み時間 719 ミリ秒
コード評価 – コード評価
Web ページのコンテキストで JavaScript または CoffeeScript を評価するには、evaluate() メソッドを使用します。コードは「サンドボックス」内で実行され、コードが属するページのコンテキスト外の JavaScript オブジェクトや変数を読み取る方法はありません。 Evaluate() はオブジェクトを返しますが、単純なオブジェクトに限定されており、メソッドやクロージャを含めることはできません。
ページタイトルを表示する例を次に示します:
var page = require('webpage').create(); page.open(url, function (status) { var title = page.evaluate(function () { return document.title; }); console.log('Page title is ' + title); });
Web ページからのコンソール情報や、evaluate() からのコードを含むコンソール情報は、デフォルトでは表示されません。この動作をオーバーライドするには、onConsoleMessage コールバック関数を使用します。前の例は次のように書き換えることができます。
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); }); });
DOM 操作 – DOM 操作
スクリプトは Web ブラウザであるかのように実行されるため、標準の DOM スクリプトと CSS セレクターは正常に動作します。これにより、PhantomJS はさまざまなページ自動化タスクのサポートに適したものになります。次の useragent.js は、ID が myagent である要素の textContent 属性を読み取ります。
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(); });
JQuery およびその他のライブラリを使用します:
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() }); });
ページがリモート サーバーからリソースをリクエストすると、リクエストとレスポンスの両方が onResourceRequested および onResourceReceived コールバック メソッドを通じて追跡できます。例
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);
ネットワーク監視ページ を参照してください。

快速入门:Python安装pandas库的方法,需要具体代码示例一、概述Python是一种广泛使用的编程语言,它拥有强大的开发生态系统,其中包括许多实用的库。而pandas是其中一款非常受欢迎的数据分析库,它提供了高效的数据结构和数据分析工具,使得数据处理和分析变得更加简单。本文将介绍如何在Python中安装pandas库,并提供相应的代码示例。二、安装Py

我们通过学习如何使用mojs为HTML元素添加动画来开始本系列。在第二个教程中,我们继续使用Shape模块制作内置SVG形状的动画。第三个教程介绍了使用ShapeSwirl和stagger模块对SVG形状进行动画处理的更多方法。现在,我们将学习如何使用Burst模块以突发形式制作不同SVG形状的动画。本教程将取决于我们在前三个教程中介绍的概念。如果您还没有阅读过它们,我建议您先阅读它们。创建基本连拍动画在创建任何突发动画之前,我们需要做的第一件事是实例化Burst对象。之后,我们可以指定不同属性

快速入门:使用Go语言函数实现简单的音频流媒体服务引言:音频流媒体服务在今天的数字化世界中越来越受欢迎,它可以让我们通过网络直接播放音频文件,而无需进行完整的下载。本文将介绍如何使用Go语言函数来快速实现一个简单的音频流媒体服务,以便您能更好地理解和使用这一功能。第一步:准备工作首先,您需要安装Go语言的开发环境。您可以从官方网站(https://golan

Title:快速上手:五款Go语言常用框架推荐近年来,随着Go语言的流行,越来越多的开发者选择采用Go进行项目开发。Go语言以其高效、简洁和性能优越等特点受到了广泛关注。在Go语言开发中,选择适合的框架能够提高开发效率和代码质量。本文将介绍五款Go语言常用框架,并附上代码示例,帮助读者快速上手。Gin框架Gin是一个轻量级的web框架,具有快速高效的特点,

快速入门:使用Go语言函数实现简单的图像识别功能在如今的科技发展中,图像识别技术已经成为一个热门的话题。作为一种快速高效的编程语言,Go语言具备了实现图像识别功能的能力。本文将通过使用Go语言函数实现简单的图像识别功能,给读者提供一个快速入门的指南。首先,我们需要安装Go语言的开发环境。可以在Go语言官方网站(https://golang.org/)上下载适

在Scrapy爬虫中使用Selenium和PhantomJSScrapy是Python下的一个优秀的网络爬虫框架,已经被广泛应用于各个领域中的数据采集和处理。在爬虫的实现中,有时候需要模拟浏览器操作去获取某些网站呈现的内容,这时候就需要用到Selenium和PhantomJS。Selenium是模拟人类对浏览器的操作,让我们可以自动化地进行Web应用程序测试

快速入门:五种Kafka可视化工具的使用指南1.Kafka监控工具:简介ApacheKafka是一种分布式发布-订阅消息系统,它可以处理大量的数据,并提供高吞吐量和低延迟。由于Kafka的复杂性,需要使用可视化工具来帮助监控和管理Kafka集群。2.Kafka可视化工具:五大选择KafkaManager:KafkaManager是一个开源的Web界

快速入门:使用Go语言函数实现简单的数据可视化折线图展示引言:在数据分析和可视化的领域中,折线图是一种常用的图表类型,可以清晰地展示数据随时间或其他变量的变化趋势。本文将介绍如何使用Go语言函数来实现一个简单的数据可视化折线图展示,并且提供相关的代码实例。一、准备工作在开始之前,需要确保以下几个条件:安装Go语言环境,并设置好相关的环境变量。安装必要的依赖库


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック



