Tag: phantomjs

PhantomJs – 如何渲染多页PDF

我可以用phantomJS创build一页PDF文件; 但我不能find文档如何创build不同的页面(每个页面来自HTML视图),并把它们放在一个PDF? 我正在使用NodeJS的节点幻像模块

PhantomJS崩溃 – 退出代码126

当我尝试在CentOS(64位)系统的工作stream程中运行phantomJS时遇到一个奇怪的问题。 这是它报告的错误: [4mRunning "qunit:all" (qunit) task[24m Testing http://localhost:8000/tests.html Running PhantomJS…[31mERROR[39m [31m>> [39m/home/jenkins/jenkins/workspace/nick_node_te/web-client/client/node_modules/grunt-contrib-qunit/node_modules/grunt-lib-phantomjs/node_modules/phantomjs/lib/phantom/bin/phantomjs: /home/jenkins/jenkins/workspace/nick_node_te/web-client/client/node_modules/grunt-contrib-qunit/node_modules/grunt-lib-phantomjs/node_modules/phantomjs/lib/phantom/bin/phantomjs: cannot execute binary file 0 [ '/home/jenkins/jenkins/workspace/nick_node_te/web-client/client/node_modules/grunt-contrib-qunit/node_modules/grunt-lib-phantomjs/node_modules/phantomjs/lib/phantom/bin/phantomjs: /home/jenkins/jenkins/workspace/nick_node_te/web-client/client/node_modules/grunt-contrib-qunit/node_modules/grunt-lib-phantomjs/node_modules/phantomjs/lib/phantom/bin/phantomjs: cannot execute binary file' ] [33mWarning: PhantomJS exited unexpectedly with exit code 126. Use –force to continue.[39m [31mAborted due to warnings.[39m 我似乎无法find这种types的崩溃的任何良好的文档。 这是通常和/或值得一个错误报告? 更新: 这些是我的文件的权限: -rwxr-x–x. 1 root root 11308856 Sep 26 12:39 phantomjs

有没有办法在PhantomJS中禁用Google Analytics(分析)跟踪?

我想使用PhantomJS来跟踪一些网站,但我不想将Google Analytics(分析)发送给用户。 有没有办法禁用Google Analytics跟踪脚本(ga.js / analytics.js)向Google发送数据? 就像通常的GAOptOut浏览器插件一样。 我查看了一下Chrome插件,并尝试了这个代码,但是在告诉PhantomJS时(onLoadStart),似乎并没有被执行。

将phantomJS部署到node.js应用程序?

我意识到“在Heroku上运行PhantomJS”是一个相关但略有不同的问题,因为我正在尝试使用节点应用程序。 我在为节点应用程序部署casperJS(基于phantomJS)脚本时遇到问题。 我已经尝试通过将PhantomJS 64位二进制文​​件放入我的应用程序的/bin目录来尝试部署到Heroku,但是当我尝试运行PhantomJS时遇到以下错误: phantomjs: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory 从我读过这可以通过安装QtWebKit库解决,但Heroku没有安装。 是否有另一个托pipe服务提供商可以使用,或者在Heroku上安装这个软件包? 相关代码: app.get('/', function(request, response) { var sys = require('sys') var exec = require('child_process').exec; var child; //works but gives error while loading shared library libqtwebkit.so.4 child = exec("phantomjs –version | tr -d '\n'", […]

Phantom.js / Casper.js与旋转代理?

我有一个简单的目标:加载网页与phantom.js (开箱)或casper.js (好,更容易),但使用代理,并从列表中旋转它 ,如果目前的一个坏(即网页加载失败或类似的东西那)。 我知道casper.js有–proxy参数,但它决定了用户只能指定一个代理并在运行时使用它。 问题1是:如何以编程方式轮播代理? 我做了一些研究,发现这个节点请求者,但它没有与casper.js集成。 我试图在代码中提取出代理function,但并没有真正理解它是如何工作的(我不是很聪明,我猜)。 所以问题2:是否有一些代理旋转的简单实现可以与phantom.js或casper.js ? 我更喜欢使用花式的casper.js但是也会用phantom.js 。

如何运行PhantomJS作为服务器并远程调用它?

这可能是一个非常基本的问题。 我想运行一个无头浏览器PhantomJS作为服务器,但不作为命令行工具。 一旦运行,我想通过HTTP远程调用它。 我唯一需要的是发送一个URL并取回HTML输出。 我需要它为AJAX应用程序生成HTML以使其可search。 可能吗 ?

无法并行运行Selenium PhantomJS实例

我使用Selenium的node.js API来针对一系列网页运行PhantomJS实例。 我用来执行页面上的操作的代码工作正常,但似乎只有一个Selenium / PhantomJS实例可以运行在一个时间。 这个函数是从同一个模块中多次调用的,并且在分页处理客户端的networking商店中进行分页(这就是为什么我需要Selenium / PhantomJS环境 – 从每个页面提取数据)。 代码本身再次正常工作,但不能并行执行。 什么可能导致这个? module.exports = function (crawler, page, parsePage, done) { "use strict"; var _ = require("lodash"), format = require("util").format, path = require("path"), webdriver = require("selenium-webdriver"), By = webdriver.By, until = webdriver.until; var phantomPath = path.resolve(__dirname, "../node_modules/.bin/phantomjs"), isWin = process.platform === "win32"; var driver = new […]

将HTML Canvas / WebGLanimation服务器端录制到video中的最佳方法?

我有一套可以在Canvas(fabric.js)或WebGL(three.js)中制作的animation。 我需要通过脚本自动logging它们,服务器端,并输出一个video文件。 animation包括: 图片 video(带audio) 其他animation/效果 在过去几个月里,我已经研究了很多。 结果 1. 用户PhantomJS + FFMPEG 在无头浏览器(PhantomJS)上运行HTML Canvasanimation并用FFMPEGlogging。 这里的问题是PhantomJS既不支持WebGL也不支持Video元素。 http://phantomjs.org/supported-web-standards.html 2. 使用Websockets使用DataURL将数据发送回服务器 在这里,我们还需要在浏览器上运行animation( 我们不能因为我们必须在服务器上做所有事情 )。 3. 使用节点canvas 这是TJ Holowaychuk的一个库,它允许在Node.js上渲染HTML Canvas。 但它有其自身的局限性,加上我没有真正探索过这个领域。 (如果有人可以更多地了解这个图书馆) 如果有人以前做过,或可以指导我有用的地方。 我们所需要做的就是使用一些数据来创buildanimation并将其logging到video中,而服务器端的所有内容都将logging下来。

如何使用phantomjs节点设置dpi?

我正在使用phantomjs节点模块。 下面是从我得到这个模块的链接。 https://github.com/sgentle/phantomjs-node 这真的很好,当我从HTML创build一个JPG图像文件。 但其默认的“dpi”是72,这不利于打印图像文件。 所以我想在我渲染图像时设置dpi。 从上面的链接我读了一些像page.set('viewportSize',{宽度:640,身高:480})的例子。 它完美地设置图像大小。 但我想设置图像的DPI,请指导我如何实现这一目标。 var phantom = require('phantom'); phantom.create(function (ph) { ph.createPage(function (page) { page.open("http://www.google.com", function (status) { page.render("bla.jpg"); ph.exit(); }); }); });

Karma无法捕获PhantomJS

我们已经build立了一个运行Karma目标PhantomJS的Jenkins CI服务器。 我们正在通过Grunt运行我们的testing。 Jenkins,Grunt和Phantom都运行正常,Karma似乎很好,但Karma无法捕捉到Phantom。 我们的脚本在本地运行(OSX)就好了。 通过bash或Jenkins运行同样的错误: Running "karma:jenkins-unit" (karma) task [2013-07-03 11:03:12.168] [WARN] config – urlRoot normalized to "/__karma/" DEBUG [reporter]: Using reporter "dots". DEBUG [reporter]: Using reporter "junit". DEBUG [reporter]: Using reporter "coverage". INFO [karma]: Karma server started at http://localhost:8084/__karma/ INFO [launcher]: Starting browser PhantomJS DEBUG [launcher]: Creating temp dir at /tmp/testacular-7720703 DEBUG [launcher]: […]