色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

phantomjs php 使用

洪振霞1年前7瀏覽0評論

PhantomJS與PHP的使用方法

PhantomJS是一個神奇的工具,它可以模擬瀏覽器,并且可以通過 Javascript 控制瀏覽器。在 PHP 中使用 PhantomJS 可以實現一些復雜的自動化任務,比如爬蟲、自動化測試、網頁截圖等等。本文將介紹如何在 PHP 中使用 PhantomJS 工具,以及如何實現一些常見的功能。

安裝 PhantonJS

安裝 PhantonJS

如果你還沒有安裝 PhantomJS,可以到官網:http://phantomjs.org/download.html下載相應版本的安裝包。如果你使用的是 Ubuntu 系統,可以通過以下命令安裝:

sudo apt-get install phantomjs

使用 PhantomJS

使用 PhantomJS

在 PHP 中使用 PhantomJS,通常我們需要將 JavaScript 代碼寫到一個 .js 文件中,并且使用 PHP 調用 PhantomJS 來執行 .js 文件中的代碼。以下是一個簡單的例子,該示例中,我們使用 PhantomJS 打開 `https://www.baidu.com`,并將網頁保存為 `baidu.png`。

<?php
// 執行 js 文件
exec('phantomjs baidu.js');
?>

上述 PHP 代碼中調用了 `baidu.js` 文件,它的代碼如下:

var page = require('webpage').create();
page.open('https://www.baidu.com', function() {
page.render('baidu.png');
phantom.exit();
});

上述 JavaScript 代碼使用 PhantomJS 打開一個網頁,然后將網頁截圖保存至 `baidu.png` 文件。需要注意的是,在 JavaScript 代碼中必須加入 `phantom.exit();`,否則程序將不會退出。

網頁截圖

網頁截圖

通過下面的代碼,我們可以將一個網頁截圖保存到指定的文件中:

var page = require('webpage').create();
page.open('https://www.baidu.com', function() {
page.render('baidu.png'); // 將網頁截圖保存到 baidu.png 文件中
phantom.exit();
});

獲取頁面內容

獲取頁面內容

使用 PhantomJS,我們可以很容易的獲取一個頁面的 HTML 內容:

var page = require('webpage').create();
page.open('https://www.baidu.com', function() {
var content = page.content; // 獲取頁面內容
console.log(content); // 輸出頁面內容
phantom.exit();
});

模仿用戶操作

模仿用戶操作

PhantomJS 可以通過 simulate 類的方法來模仿用戶的一些操作,比如點擊、輸入等。以下是一個例子,該示例中使用 PhantomJS 模擬雙擊百度輸入框,然后輸入 "Hello World!:

var page = require('webpage').create();
page.open('https://www.baidu.com', function() {
page.evaluate(function() {
var input = document.getElementById('kw');
// 模擬雙擊輸入框
input.dispatchEvent(new MouseEvent('dblclick', {
'view': window,
'bubbles': true,
'cancelable': true
}));
// 在輸入框中輸入內容
var e = document.createEvent('Events');
e.initEvent('keydown', true, true);
e.keyCode = 72;
e.which = 72;
input.dispatchEvent(e);
e.initEvent('keypress', true, true);
e.keyCode = 72;
e.which = 72;
input.dispatchEvent(e);
e.initEvent('keyup', true, true);
e.keyCode = 72;
e.which = 72;
input.dispatchEvent(e);
// 輸入回車鍵,提交搜索
e.initEvent('keydown', true, true);
e.keyCode = 13;
e.which = 13;
input.dispatchEvent(e);
});
phantom.exit();
});

通過上例,我們可以看到 PhantomJS 模擬用戶的操作非常方便,只需要找到相應的元素,并調用相應的方法即可模擬用戶操作。

從外部給 JavaScript 傳遞參數

從外部給 JavaScript 傳遞參數

有時候,我們需要將 PHP 中的一些參數傳遞給 JavaScript,然后在 JavaScript 代碼中使用這些參數。以下是一個例子,該示例中,從 PHP 中傳遞一個參數給 JavaScript:

<?php
$word = 'Hello World!';
// 傳遞一個參數到 js 文件中
exec("phantomjs baidu.js '".$word."'");
?>

上述 PHP 代碼中,我們將一個字符串 `Hello World!` 傳遞到了 `baidu.js` 文件中,JavaScript 代碼如下:

var page = require('webpage').create();
var system = require('system');
var word = system.args[1]; // 從外部傳入的參數
page.open('https://www.baidu.com', function() {  
// 在輸入框中輸入參數
page.evaluate(function(word) {
document.getElementById('kw').value = word;  
}, word);
// 提交搜索
var btn = document.getElementById('su');
btn.click();
phantom.exit();
});

上述 JavaScript 代碼中,我們通過 `system.args[1]` 獲取到了 PHP 中傳遞的參數,并將其傳遞給了 JavaScript 代碼。

總結

總結

本文介紹了在 PHP 中使用 PhantomJS 的方法,并對使用中的一些技巧進行了詳細的講解。PhantomJS 可以在一定程度上滿足我們對于自動化任務的需求,同時也可以極大的提高我們的開發效率。希望本文對大家有所幫助。