phantomjs光栅化在url参数方面存在问题

phantomjs光栅化在url参数方面存在问题,phantomjs,url-parameters,Phantomjs,Url Parameters,我在windows机器上使用标准命令行工具,使用PhantomJS和修改的rasterize.js代码。我遇到的问题是当我传递url时,http://time.com/3274245/e-cigarettes-debate/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+时间/顶层+(时间:+顶层+故事)。我已经重定向了标准输出和标准错误,下面是我通过上面的url得到的结果 标准输出 Usage: rasterize.js UR

我在windows机器上使用标准命令行工具,使用
PhantomJS
和修改的
rasterize.js
代码。我遇到的问题是当我传递url时,
http://time.com/3274245/e-cigarettes-debate/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+时间/顶层+(时间:+顶层+故事)
。我已经重定向了
标准输出
标准错误
,下面是我通过上面的url得到的结果

标准输出

Usage: rasterize.js URL filename [paperwidth*paperheight|paperformat] [zoom]
  paper (pdf output) examples: "5in*7.5in", "10cm*20cm", "A4", "Letter"
标准错误

'utm_source' is not recognized as an internal or external command,
operable program or batch file.
'utm_medium' is not recognized as an internal or external command,
operable program or batch file.
'utm_campaign' is not recognized as an internal or external command,
operable program or batch file.
所以问题是,有没有办法解决url中参数的问题

请让我知道是否有任何信息丢失或需要澄清

我将在下面添加修改后的
rasterize.js

var page = require('webpage').create(),
    system = require('system'),
    address, output, size;

page.settings.userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:31.0) Gecko/20100101 Firefox/31.0';
if (system.args.length < 3 || system.args.length > 5) {
    console.log('Usage: rasterize.js URL filename [paperwidth*paperheight|paperformat] [zoom]');
    console.log('  paper (pdf output) examples: "5in*7.5in", "10cm*20cm", "A4", "Letter"');
    phantom.exit(1);
} else {
    address = system.args[1];
    output = system.args[2];
    page.viewportSize = { width: 1200, height: 1200 };
    if (system.args.length > 3 && system.args[2].substr(-4) === ".pdf") {
        size = system.args[3].split('*');
        page.paperSize = size.length === 2 ? { width: size[0], height: size[1], margin: '0px' }
                                           : { format: system.args[3], orientation: 'portrait', margin: '1cm' };
    }
    if (system.args.length > 4) {
        page.zoomFactor = system.args[4];
    }
    page.open(address, function (status) {
        if (status !== 'success') {
            console.log('Unable to load the address!');
            phantom.exit();
        } else {
            window.setTimeout(function () {
                page.render(output);
                phantom.exit();
            }, 10000);
        }
    });
}
var page=require('webpage')。create(),
系统=要求(“系统”),
地址、输出、大小;
page.settings.userAgent='Mozilla/5.0(Windows;U;Windows NT 5.1;en-US;rv:31.0)Gecko/20100101 Firefox/31.0';
if(system.args.length<3 | | system.args.length>5){
log('用法:rasterize.js URL文件名[paperwidth*paperheight | paperformat][zoom]);
log('paper(pdf输出)示例:“5in*7.5in”,“10cm*20cm”,“A4”,“Letter”);
幻影。出口(1);
}否则{
地址=system.args[1];
输出=系统参数[2];
page.viewportSize={宽度:1200,高度:1200};
if(system.args.length>3&&system.args[2].substr(-4)=“.pdf”){
size=system.args[3]。拆分('*');
page.paperSize=size.length==2?{宽度:大小[0],高度:大小[1],边距:“0px'}
:{格式:system.args[3],方向:“纵向”,边距:“1cm”};
}
如果(system.args.length>4){
page.zoomFactor=system.args[4];
}
第页打开(地址、功能(状态){
如果(状态!=“成功”){
console.log('无法加载地址!');
phantom.exit();
}否则{
setTimeout(函数(){
页面渲染(输出);
phantom.exit();
}, 10000);
}
});
}

在windows cmd中,您需要在可能具有特殊字符的参数周围使用引号。一个
=
是一个很好的选择,当有东西坏了

phantomjs rasterize.js "http://time.com/..." time.png
对于此页面,您可能需要禁用web安全:

phantomjs --web-security=false rasterize.js "http://time.com/..." time.png

在windows cmd中,需要在可能具有特殊字符的参数周围使用引号。一个
=
是一个很好的选择,当有东西坏了

phantomjs rasterize.js "http://time.com/..." time.png
对于此页面,您可能需要禁用web安全:

phantomjs --web-security=false rasterize.js "http://time.com/..." time.png

您使用的是什么操作系统/shell?不同的shell需要不同的参数引用。@ArtjomB。我在使用标准命令行工具的windows计算机上。您在哪个操作系统/shell上?不同的shell需要不同的参数引用。@ArtjomB。我在windows机器上使用标准命令行工具。谢谢!这让我克服了参数问题。我现在看到我还有另一个问题要解决,但嘿,朝着完美又迈进了一步!:)谢谢这让我克服了参数问题。我现在看到我还有另一个问题要解决,但嘿,朝着完美又迈进了一步!:)