PhantomJS 빠른 시작 튜토리얼(서버 측 JavaScript API WebKit)_javascript 기술
PhantomJS는 WebKit 기반의 서버측 JavaScript API입니다. 브라우저 지원 없이 웹을 완벽하게 지원하며, 빠르고 기본적으로 DOM 처리, CSS 선택기, JSON, Canvas, SVG 등 다양한 웹 표준을 지원합니다. PhantomJS는 페이지 자동화, 네트워크 모니터링, 웹 페이지 스크린샷, 인터페이스 없는 테스트 등에 사용할 수 있습니다.
PhantomJs 공식 홈페이지: http://phantomjs.org/
GitHub:https://github.com/ariya/phantomjs/wiki/빠른 시작
1. 설치
설치 패키지 다운로드 주소: http://phantomjs.org/download.html, Windows, Mac OS, Linux 버전을 포함하여 다운로드하고 압축을 풀 수 있습니다(편의상). 이미 작성된 코드가 많이 포함된 예제 폴더가 있는 phantomjs에 대한 환경 변수를 설정할 수 있습니다. 이 글에서는 phantomjs가 설치되어 있고 환경 변수가 설정되어 있다고 가정합니다.
2. 사용
안녕하세요, 월드!
다음 두 줄의 스크립트가 포함된 새 텍스트 파일을 만듭니다.
console.log('Hello, world!'); phantom.exit();
hello.js로 파일을 저장하고 실행하세요.
phantomjs hello.js
출력 결과는 다음과 같습니다: Hello, world!
첫 번째 줄은 터미널의 문자열을 인쇄하고 두 번째 줄은 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: foo
1: 바
2: 바즈
페이지 로딩 – 페이지 로딩
웹페이지 개체를 생성하면 웹페이지를 로드, 분석 및 렌더링할 수 있습니다.
다음 스크립트는 가장 간단한 형식의 예제 페이지 개체를 사용하여 example.com을 로드하고 example.png라는 이미지로 저장합니다.
var page = require('webpage').create(); page.open('http://example.com', function () { page.render('example.png'); phantom.exit(); });
이 기능으로 인해 PhantomJS를 사용하여 웹 페이지의 스크린샷을 찍고 웹 페이지 및 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(); });
명령줄에서 다음 스크립트를 실행하세요.
phantomjs loadspeed.js http://www.google.com
다음과 같이 출력됩니다.
http://www.google.com 로딩 로딩 시간 719밀리초
코드 평가 - 코드 평가
웹페이지의 맥락에서 JavaScript 또는 CoffeeScript를 평가하려면 평가() 메서드를 사용하세요. 코드는 "샌드박스"에서 실행되며 해당 코드가 속한 페이지 컨텍스트 외부의 JavaScript 개체 및 변수를 읽을 수 있는 방법이 없습니다. 평가()는 객체를 반환하지만 단순한 객체로 제한되며 메서드나 클로저를 포함할 수 없습니다.
페이지 제목을 표시하는 예는 다음과 같습니다.
var page = require('webpage').create(); page.open(url, function (status) { var title = page.evaluate(function () { return document.title; }); console.log('Page title is ' + title); });
웹 페이지의 콘솔 정보와 평가()의 코드를 포함하는 모든 콘솔 정보는 기본적으로 표시되지 않습니다. 이 동작을 재정의하려면 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 조작
스크립트가 웹 브라우저처럼 실행되므로 표준 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);
네트워크 모니터링 페이지를 참조하세요.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











빠른 시작: Python에 pandas 라이브러리를 설치하려면 특정 코드 예제가 필요합니다. 1. 개요 Python은 많은 실용적인 라이브러리를 포함하는 강력한 개발 생태계를 갖춘 널리 사용되는 프로그래밍 언어입니다. Pandas는 가장 널리 사용되는 데이터 분석 라이브러리 중 하나이며 효율적인 데이터 구조와 데이터 분석 도구를 제공하여 데이터 처리 및 분석을 더 쉽게 만듭니다. 이 기사에서는 Python에 pandas 라이브러리를 설치하는 방법을 소개하고 해당 코드 예제를 제공합니다. 2. 파이 설치

Mojs를 사용하여 HTML 요소에 애니메이션을 적용하는 방법을 학습하는 것으로 이 시리즈를 시작합니다. 이 두 번째 튜토리얼에서는 Shape 모듈을 계속 사용하여 내장된 SVG 모양에 애니메이션을 적용합니다. 세 번째 튜토리얼에서는 ShapeSwirl 및 Stagger 모듈을 사용하여 SVG 모양에 애니메이션을 적용하는 더 많은 방법을 다룹니다. 이제 버스트 모듈을 사용하여 버스트에서 다양한 SVG 모양에 애니메이션을 적용하는 방법을 알아봅니다. 이 튜토리얼은 처음 세 튜토리얼에서 다룬 개념에 따라 달라집니다. 아직 읽어보지 않으셨다면 먼저 읽어보시길 권합니다. 기본 버스트 애니메이션 만들기 버스트 애니메이션을 만들기 전에 가장 먼저 해야 할 일은 버스트 개체를 인스턴스화하는 것입니다. 그 후에는 다른 속성을 지정할 수 있습니다.

빠른 시작: Go 언어 기능을 사용하여 간단한 오디오 스트리밍 서비스 구현 소개: 오디오 스트리밍 서비스는 오늘날 디지털 세계에서 점점 더 인기를 얻고 있으며, 이를 통해 전체 다운로드를 수행하지 않고도 네트워크를 통해 직접 오디오 파일을 재생할 수 있습니다. 이 글에서는 Go 언어의 기능을 활용하여 간단한 오디오 스트리밍 서비스를 빠르게 구현하는 방법을 소개하여 이 기능을 더 잘 이해하고 사용할 수 있도록 하겠습니다. 1단계: 준비 먼저 Go 언어 개발 환경을 설치해야 합니다. 공식 홈페이지(https://golan)에서 다운로드 가능합니다.

빠른 시작: Go 언어 기능을 사용하여 간단한 이미지 인식 기능 구현 오늘날의 기술 발전에서 이미지 인식 기술이 화두가 되었습니다. 빠르고 효율적인 프로그래밍 언어인 Go 언어는 이미지 인식 기능을 구현할 수 있는 능력을 갖추고 있습니다. 이 기사에서는 독자들에게 Go 언어 기능을 사용하여 간단한 이미지 인식 기능을 구현하는 빠른 시작 가이드를 제공합니다. 먼저 Go 언어 개발 환경을 설치해야 합니다. Go 언어 공식 홈페이지(https://golang.org/)에서 해당 버전을 다운로드 받으실 수 있습니다.

제목: 빠르게 시작하기: 권장되는 5가지 일반적인 Go 언어 프레임워크 최근 몇 년 동안 Go 언어의 인기로 인해 점점 더 많은 개발자가 프로젝트 개발에 Go를 사용하기로 선택했습니다. Go 언어는 효율성, 단순성 및 뛰어난 성능으로 인해 광범위한 주목을 받아왔습니다. Go 언어 개발에서 적합한 프레임워크를 선택하면 개발 효율성과 코드 품질을 향상시킬 수 있습니다. 이 기사에서는 Go 언어에서 일반적으로 사용되는 5가지 프레임워크를 소개하고 독자가 빠르게 시작할 수 있도록 코드 예제를 첨부합니다. Gin 프레임워크 Gin은 빠르고 효율적인 경량 웹 프레임워크입니다.

빠른 시작: 다섯 가지 Kafka 시각화 도구 사용 가이드 1. Kafka 모니터링 도구: 소개 Apache Kafka는 대량의 데이터를 처리하고 높은 처리량과 짧은 대기 시간을 제공할 수 있는 분산 게시-구독 메시징 시스템입니다. Kafka의 복잡성으로 인해 Kafka 클러스터를 모니터링하고 관리하는 데 도움이 되는 시각화 도구가 필요합니다. 2.Kafka 시각화 도구: 다섯 가지 주요 선택 KafkaManager: KafkaManager는 오픈 소스 웹 커뮤니티입니다.

Scrapy 크롤러에서 Selenium 및 PhantomJSScrapy 사용 Scrapy는 Python 기반의 뛰어난 웹 크롤러 프레임워크이며 다양한 분야의 데이터 수집 및 처리에 널리 사용되었습니다. 크롤러 구현 시 특정 웹사이트에서 제공하는 콘텐츠를 얻기 위해 브라우저 작업을 시뮬레이션해야 하는 경우가 있습니다. 이 경우 Selenium 및 PhantomJS가 필요합니다. Selenium은 브라우저에서 인간 작업을 시뮬레이션하여 웹 애플리케이션 테스트를 자동화할 수 있습니다.

빠른 시작: Go 언어 기능을 사용하여 간단한 데이터 시각화 선 차트 표시 구현 소개: 데이터 분석 및 시각화 분야에서 선 차트는 시간이나 기타 변수에 따른 데이터 변화 추세를 명확하게 표시할 수 있는 일반적으로 사용되는 차트 유형입니다. 이 기사에서는 Go 언어 기능을 사용하여 간단한 데이터 시각화 선 차트 표시를 구현하는 방법을 소개하고 관련 코드 예제를 제공합니다. 1. 준비 작업을 시작하기 전에 다음 조건을 확인해야 합니다. Go 언어 환경을 설치하고 관련 환경 변수를 설정합니다. 필요한 종속성 설치
