[教程][网络]AHK调用无头浏览器PhantomJS简介

PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API。它全面支持web而不需浏览器支持。

来自PhantomJS快速入门教程:

PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API。它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG。 PhantomJS 可以用于 页面自动化网络监测网页截屏 ,以及 无界面测试 等。

安装包下载地址: http://phantomjs.org/download.html

windows调用过程:

    Cmd>>Phantomjs>>JS脚本文件,并输出内容

ahk调用过程:

    执行cmd命令,获取输出内容

按照教程:

Hello, World!

新建一个包含下面两行脚本的文本文件:

console.log('Hello, world!');
phantom.exit();

将文件另存为 hello.js ,然后执行它:

phantomjs hello.js

输出结果为:Hello, world!

第一行将会在终端打印出字符串,第二行 phantom.exit 将退出运行。
在该脚本中调用 phantom.exit 是非常重要的,否则 PhantomJS 将根本不会停止。

ahk结合帮助文件用法:

(环境win7x64,AHKU32,js文件编码ANSI,和AHK脚本文件以及phantomjs.exe放在一起

MsgBox % RunWaitOne("phantomjs.exe hello.js")

RunWaitOne(command) {

	shell := ComObjCreate("WScript.Shell")
	; 通过 cmd.exe 执行单条命令
	exec := shell.Exec(ComSpec " /C " command)
	; 读取并返回命令的输出
	return exec.StdOut.ReadAll()
    
}

获取网页标题

// a phantomjs example
var page = require('webpage').create();
phantom.outputEncoding="gbk";
page.open("http://www.autoahk.com", function(status) {
if ( status === "success" ) {
console.log(page.title); 
} else {
console.log("Page failed to load."); 
}
phantom.exit(0);
});

将文件另存为 autoahk标题.js ,然后AHK脚本添加:

MsgBox, % RunWaitOne(“phantomjs.exe autoahk标题.js”)

弹窗提示:智能热键

网页截屏

var page = require('webpage').create();
page.open('http://example.com/', function () {
page.render('test.png');
phantom.exit();
});

将文件另存为 test.txt ,然后AHK脚本添加:

MsgBox, % RunWaitOne(“phantomjs.exe test.txt”)

获得图片如下[教程][网络]AHK调用无头浏览器PhantomJS简介

 

 

 

 

 

 

个人感觉

不是很快,不适合太复杂网页

其他参考官方示例

 

 

给TA捐赠
共{{data.count}}人
人已捐赠
其他

tooltip显示坐标和颜色信息

2017-12-14 16:13:31

其他

[类][0.51b 1223 2105] AHK 多引擎翻译 API

2017-12-23 8:59:23

2 条回复 A文章作者 M管理员
  1. AHK中文社区

    这个不错 等有空研究一下 我这边需要这个

个人中心
购物车
优惠劵
有新私信 私信列表
搜索