Tag: phantomjs

是否有可能从node.js运行PhantomJS作为命令行参数

我最近正在testingpython作为命令行参数运行phantomJS,我还没有到它,但看到的例子。 因为PhantomJS是从命令行运行的,所以这似乎是可能的。 PhantomJS会吐出的结果会直接进入一个variables。 在我走下这条路之前,在node.js中做这个工作实际上对我更有用,它让我思考,我可以用节点来运行PhantomJS,因为程序从命令行运行并存储数据结果PhantomJS通常会吐出一个variables? 我宁愿不使用phantomjs节点,因为它似乎使用了太多的技巧。 所有这些的原因是能够同时运行PhantomJS程序所需的另一个动作,并使用结果数据logging其他的东西。 简单地说,你可以在python中运行系统命令行的东西,我可以在node.js中做同样的事情吗? 干杯:) 编辑:我明白,节点和幻影使用不同的JS环境,这很酷,因为我只是想运行幻影作为自己的进程,并捕获所有输出数据到一个node.jsvariables(数据将是一个对数组,string和浮点。)我不想'幻想驾驶',我会制作加载的JavaScript文件待办事项我想要的。 我想要的只是幻像输出。 🙂

是否有可能使用PhantomJS和节点从模板dynamic生成PDF?

背景/需要 我正在使用Node.JS和Express在一个Web应用程序上使用一个组。 我们需要能够生成可作为硬拷贝和硬拷贝forms打印的报告。 最好我们想在服务器上dynamic生成PDF格式的报告和手写格式。 我们目前正在服务器上使用EJS模板。 选项 我认为能够使用模板来构build表单/报告并从生成的HTML中生成PDF将是方便的,但是我的选项似乎是有限的,只要我能find。 我看了两个不同的可能的解决scheme: PhantomJS – (npm 节点 – 幻像模块) PDFKit 编辑:我发现了另一个Node.JS模块,它能够从HTML生成的PDF文件称为节点-wkhtml依靠wkhtmltopdf 。 我现在正在比较使用node-phantom和node-wkhtml 。 我已经能够在这两个节点服务器上生成PDF,他们都似乎能够做我所需要的。 我已经看到了一些使用PhantomJS从网站上呈现PDF文档的例子,但是我所看到的所有例子都使用了一个URL,而不是给它一个HTMLstring。 我不确定我是否可以使用模板来dynamic生成PDF报告。 当报告的请求进来时,我希望从EJS模板生成HTML,并使用它来生成PDF。 有没有反正我使用Phantom来dynamic创build一个页面完全在服务器上,而没有提出请求? 我的另一个select是使用PDFkit,它允许dynamic生成PDF,但它是一个类似canvas的API,并不能真正支持任何模板的概念,据我所知。 问题 有谁知道如果我可以使用PhantomJS与节点dynamic生成从模板生成的HTML的PDF? 还是有人知道任何其他解决scheme,我可以用来生成和提供可打印的报告/forms从我的节点/ Express后端。

生成的node.jssubprocess的输出逐行parsing

我有一个使用process.spawn()从node.js脚本运行的PhantomJS / CasperJS脚本。 由于CasperJS不支持require() ing模块,我试图从CasperJS打印命令到stdout ,然后从我的node.js脚本中使用spawn.stdout.on('data', function(data) {}); 为了做一些事情,比如将对象添加到redis / mongoose(复杂的,是的,但似乎比为此设置一个Web服务更简单)。CasperJS脚本执行一系列命令并创build20个截图,这些截图需要被添加到我的数据库。 然而,我想不出如何将datavariables(一个Buffer ?)分解成行…我试过把它转换成一个string,然后做一个replace,我试过做spawn.stdout.setEncoding('utf8'); 但似乎没有工作… 这是我现在所拥有的 var spawn = require('child_process').spawn; var bin = "casperjs" //googlelinks.js is the example given at http://casperjs.org/#quickstart var args = ['scripts/googlelinks.js']; var cspr = spawn(bin, args); //cspr.stdout.setEncoding('utf8'); cspr.stdout.on('data', function (data) { var buff = new Buffer(data); console.log("foo: " + buff.toString('utf8')); }); cspr.stderr.on('data', […]

直接在node.js中使用PhantomJS的问题

我试图使用PhantomJS,我已经通过NPM安装了它。 我似乎无法运行任何的例子,实际上我甚至不能运行: var page = require('webpage').create(); 我得到的错误: Error: Cannot find module 'webpage' 有什么我失踪? 我正在使用一些其他模块,我已经通过NPM安装在同一个目录中,没有问题

刮一个网页,并通过点击button导航

我想在服务器端执行以下操作: 1)刮网页 2)模拟该页面上的点击,然后导航到新页面。 3)刮新页面 4)模拟新页面上的一些button点击 5)通过json或其他方式将数据发送回客户端 我正在考虑与Node.js一起使用它。 但我很困惑,我应该使用哪个模块 a)僵尸 b)Node.io c)Phantomjs d)JSDOM e)还有其他的东西 我已经安装了节点io,但无法通过命令提示符运行它。 PS:我在Windows 2008服务器上工作

无法安装phantomjs – 这是一个bitbucket问题?

phantomjs无法安装。 错误是否表明bitbucket有问题? $ sudo npm install -g phantomjs … > phantomjs@1.9.7-6 install /usr/lib/node_modules/phantomjs > node install.js Looks like an `npm install -g`; unable to check for already installed version. Downloading http://cdn.bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-linux-x86_64.tar.bz2 Saving to /usr/lib/node_modules/phantomjs/phantomjs/phantomjs-1.9.7-linux-x86_64.tar.bz2 Receiving… Error requesting archive. Status: 403 Request options: { "protocol": "http:", "slashes": true, "auth": null, "host": "cdn.bitbucket.org", "port": null, "hostname": "cdn.bitbucket.org", […]

使用Node.js和XPath对页面进行性能分析

我进入了一些网站与Node.js刮。 我想使用XPath,因为我可以用几种GUI自动生成它。 问题是,我无法find有效的方法。 jsdom非常慢。 它在一分钟左右parsing500KiB文件,全部CPU负载和大量内存占用。 用于HTMLparsing的stream行库(例如cheerio )既不支持XPath,也不公开W3C兼容的DOM。 有效的HTMLparsing显然是在WebKit中实现的,所以使用phantom或casper将是一种select,但是这些parsing需要以特殊的方式运行,而不仅仅是node <script> 。 我不能依靠这种变化所暗示的风险。 例如,要find如何用phantom运行node-inspector困难多了。 Spooky是一个选项,但是它有足够的bug ,所以它在我的机器上根本没有运行。 然后用XPathparsingHTML页面的正确方法是什么?

使用mocha-phantomjs来自动化functiontesting

我的项目使用:Node,Coffeescript,SocketIO,Browserify和Mocha。 (用于标准服务器端unit testing的mocha) 我想用一个无头浏览器自动化一些客户端接口testing。 PhantomJS看起来像是理想的select(由于networking套接字的支持而select僵尸)。 PhantomJS页面警告说,这不是一个testing运行者,据我所知,他们build议使用mocha-phantomjs项目来驱动你的testing。 所以我已经能够运行示例testing(例如mocha-phantomjs tests/mixed.html ),但是我目前的问题实际上是在testing中使用PHANTOM。 所有mocha-phantomjs回购的样本testing似乎都使用标准的mocha服务器端unit testing。 例如,我可以轻松运行mocha-phantomjs tests/mixed.html来查看枯燥的旧unit testing。 或者我可以运行phantomjs tests/login.coffee来加载我的login屏幕…但是我怎么phantomjs tests/login.coffee两个结合起来,对我在login屏幕上看到的内容做出断言? 我在网上找不到任何这样的例子,我正在努力理解这个最好的方法。 希望这一切都有道理。 预先感谢您的帮助。 更新 :我发现作者( 这里 )的以下build议,但我真的不明白如何处理它: phantomjs lib/mocha-phantomjs.coffee test/mixed.html

如何在PhantomJS中处理PDF分页

我正在使用PhantomJS从HTML创buildPDF。 它工作正常,但我不知道如何与分页工作; 我想为我的文档中的每个div创build一个页面,但我无法在文档中find任何内容。 关于分页。 如果我的文档很短,那么只有一个页面,如果它更大,则会创build一个空白页面,而且我的内容位于第一个页面,变得很长。 任何想法 ? (我正在为nodeJS使用phantomJS-node模块)

Angular2 SEO – 如何使angular2应用程序可抓取

我正在使用Angular-Meteor框架构build一个Angular 2应用程序。 我想通过谷歌和其他search引擎实现快速和一致的索引 ,并允许Facebook共享者和其他刮板生成我的JS生成的内容的预览。 通常,SPA使用PhantomJS呈现页面服务器端,并将静态HTML发送给客户端。 当我拦截一个_escaped_fragment_或者当我看到google或者scraper用户代理时,我可以自己产生PhantomJS,但是当在大stream量的网站上直接产生PhantomJS时,我经常遇到内存泄漏和孤立的幻影实例(我使用了NodeJS和这个模块 )。 对于Angular 1应用程序,我曾经使用Angular-SEO等angular度模块来解决这个问题,但是很难将这个模块转换成angular度2。 我还没有find适合的Angular 2模块。 我应该自己创build它,还是有其他的好方法来实现这一点?