似乎图像的新gmail代理不能与SVG一起使用(如果在新选项卡中打开代理URL,则会出现404错误.)
我无法找到有关支持/阻止的文件类型的任何文档.在gmail中的SVG是否适用于其他任何人?
我能想到的唯一解决方法是使用PhantomJS在服务器上生成一个svg - 还有其他任何选项吗?
背景:
这适用于发送每日摘要电子邮件的webapp,显示过去24小时内的图表(因此svg每天都不同,在电子邮件中显示它会让用户省去点击应用程序的麻烦.)
我知道SVG图像在某些电子邮件客户端中不起作用,但它可以工作95%,其余的仍然可以点击进入webapp.
它在gmail中运行良好,直到本月早些时候代理更改(该月底刚刚推出到Google Apps帐户.)
有没有办法使用ES6和模块与PhantomJS?
我可以使用Babel将每个文件从ES6转换为ES5,但是维护并行树(ES6中的一个和ES5中的另一个)很难并且编写导入以要求ES5模块.我正在寻找一个更清洁的解决方案.
我可以删除所有导入和导出代码,将模块连接在一起,将结果转换为单个文件,然后通过PhantomJS运行,但我更愿意使用导入和导出.
我尝试使用Browserify和babelify转换将ES6依赖树转换为单个ES5文件,但Browserify无法找到PhantomJS提供的模块webpage
.我已经尝试通过放入我的忽略这些模块package.json
:
"browser": {
"webpage": false
}
Run Code Online (Sandbox Code Playgroud)
但导入webpage
返回一个空对象而不是PhantomJS模块.
是否有一种干净的方式来使用PhantomJS的ES6模块?
我是PhantomJs的新手.刚查看了这个网站上的类似帖子.我的问题是为什么'foo'没有登录到控制台或打印?
var page = require('webpage').create()
var foo = 42;
function evaluate(page, func) {
var args = [].slice.call(arguments, 2);
var fn = "function() { return (" + func.toString() + ").apply(this, " + JSON.stringify(args) + ");}";
return page.evaluate(fn);
}
page.open('http://google.com', function() {
var foo = 42;
evaluate(page, function(foo) {
console.log(foo);
},foo);
});
Run Code Online (Sandbox Code Playgroud) WARN [config]: config.configure() is deprecated, please use config.set() instead.
WARN [plugin]: Cannot find plugin "karma-phantomjs".
Did you forget to install it ?
npm install karma-phantomjs --save-dev
INFO [karma]: Karma v0.10.2 server started at http://localhost:9018/
WARN [launcher]: Can not load "PhantomJS", it is not registered!
Perhaps you are missing some plugin?
Run Code Online (Sandbox Code Playgroud)
得到这个错误.当运行npm install时,karma-phantomjs --save-dev会出错.
npm ERR! 404 'karma-phantomjs' is not in the npm registry.
Run Code Online (Sandbox Code Playgroud)
我安装了karma-phantomjs-launcher --save-dev但是在运行grunt watch时我仍然遇到错误.
其他人遇到这个问题?
我正在使用Node.js进行一些网络抓取.我想使用XPath,因为我可以使用几种GUI半自动生成它.问题是我找不到有效地做到这一点的方法.
jsdom
非常慢.它在一分钟左右的时间内解析了500KiB文件,并且CPU负载全部,内存占用空间很大.cheerio
)既不支持XPath,也不暴露符合W3C的DOM.phantom
或casper
将是一个选项,但那些需要以特殊方式运行,而不仅仅是node <script>
.我不能依赖这种变化所暗示的风险.例如,找到如何运行node-inspector
起来要困难得多phantom
.Spooky
是一个选项,但它足够多,所以它在我的机器上根本没有运行.那么用XPath解析HTML页面的正确方法是什么?
我正在尝试v2.0.0
使用PhantomJS npm
,在尝试了几种方法之后,我找不到一个可行的解决方案......
在NPM上最新版本是1.9.16
,所以我在我的尝试中尝试了以下内容package.json
:
"phantomjs": "https://github.com/ariya/phantomjs/archive/2.0.0.tar.gz"
这给了我一个错误,因为package.json
github repo中没有这个版本.
"phantomjs": "2.0.0"
这告诉我没有这个号码可用的版本.
我在这里错过了什么吗?
我想在我的node.js脚本中使用phantomjs.有一个phantomjs节点库..但不幸的是,作者使用这个奇怪的咖啡脚本代码来解释他在做什么:
phantom = require 'phantom'
phantom.create (ph) ->
ph.createPage (page) ->
page.open "http://www.google.com", (status) ->
console.log "opened google? ", status
page.evaluate (-> document.title), (result) ->
console.log 'Page title is ' + result
ph.exit()
Run Code Online (Sandbox Code Playgroud)
现在如果我直接用javascript使用phantomjs,它看起来像这样:
var page = require('webpage').create();
page.open(url, function (status) {
var title = page.evaluate(function () {
return document.title;
});
console.log('Page title is ' + title);
});
Run Code Online (Sandbox Code Playgroud)
所以基本上我正在尝试在普通的javascript中编写相当于上面第一段代码的代码(通过阅读咖啡脚本文档 ..这就是我所做的:
// file name: phantomTest.js
var phantom = require('phantom');
phantom.create(function(ph) {
ph.createPage(function(page) {
page.open('http://www.google.com', function(status) { …
Run Code Online (Sandbox Code Playgroud) 这是一个关于如何将cookie从一个casperjs页面持久存储到另一个页面的问题.
所以基本上我得到一个nodejs文件,它生成casperjs作为工作人员来完成某些任务..一个是登录,一旦登录我将cookie存储在一个文件中.
当我产生下一个casper worker时..我希望它使用cookie而不必再次登录..这两种方法都失败了:
第一:当我产生工人capserjs时,我添加了--cookies-file =./ cookiefilename ie
var child = spawn('casperjs',['scrape.js','--cookies-file=./'+cookieFileName]);
第二:在casperjs工作文件中..我让它读取并从文件中设置cookie即
var casper = require('casper').create();
var cookieFileName = 'monsterCookie.txt';
// grab cookies from file
var fs = require('fs');
var utils = require('utils');
var cookies = fs.read(cookieFileName);
casper.page.setCookies(cookies);
casper.start('domain/page.html', function() {
//FAIL! cookies aren't used here
this.debugHTML();
});
casper.run();
Run Code Online (Sandbox Code Playgroud)
笔记:
start
从页面删除cookies吗?如果是这样我该怎么做呢?[一般]饼干="@变体(\ 0\0\0\0x7F部分\ 0\0\0\x16QList\0\0\0\0\X1\0\0\0 \n\0\0\0YCNTR = LB; expires = Tue,09-Apr-2013 17:12:05 GMT; domain = …
我正在使用Angular-Meteor框架构建一个Angular 2应用程序.
我想实现快速和一致的索引谷歌和其他搜索引擎,让Facebook的分享者和其他刮削器生成我的JS生成内容的预览.
通常,SPA使用PhantomJS呈现页面服务器端并将静态HTML发送到客户端.
当然,我可以生成PhantomJS自己,当我拦截_escaped_fragment_或当我看到谷歌或刮刀用户代理,但我总是经历了内存泄漏,并直接与大流量的网站产卵PhantomJS当孤儿幻影情况下(我用的NodeJS和这个模块).
对于Angular 1应用程序,我曾经使用像Angular-SEO这样的角度模块来解决这个问题,但似乎很难将这样的模块转换为角度2.
我还没有找到任何合适的Angular 2模块.我应该自己构建它,还是有任何其他好方法来实现这一点?
升级到10.11(El Capitan)后,我无法在我的macbook中安装phantomJs.
每当我尝试使用自制程序安装它时它会给我这个错误:
$ brew install phantomjs
phantomjs: OS X Yosemite or older is required.
Error: An unsatisfied requirement failed this build.
Run Code Online (Sandbox Code Playgroud)