如何从Python启动Casperjs脚本

时间:2013-07-19 02:04:01

标签: python casperjs

使用Subprocess不起作用。在命令提示符下,我将像这样运行Casperjs文件。

casperjs.bat test.js

子进程如果失败,因为脚本不是exe。不幸的是,我在Windows环境中工作。

cmd = ['/projects/casperjs/batchbin/casperjs.bat',  '/projects/music/test.js']
        response = subprocess.check_output(cmd, 
                shell=False,
                stderr=subprocess.STDOUT)

*错误返回非零退出状态1

1 个答案:

答案 0 :(得分:4)

这个问题的答案实际上是两部分。由于Python对JavaScript一无所知,唯一的方法就是使用子进程预先挂起指向phantomjs然后是脚本的参数。在脚本中,您需要指向Casper.batch文件。这在他们的操作方法中有记录。使用子进程,您可以从命令行捕获输出。

    APP_ROOT = os.path.dirname(os.path.realpath(__file__))
    PHANTOM = '/projects/phantomjs/phantomjs.exe'
    SCRIPT = os.path.join(APP_ROOT, 'iTunesScriptSingle.js')
    params = [PHANTOM, SCRIPT, song, artist]
    child = subprocess.Popen(params, shell=True, stderr=subprocess.PIPE)
    while True:
        out = child.stderr.read(1)
        return out
        if out == '' and child.poll() != None:
            break
        if out != '':
            sys.stdout.write(out)
            sys.stdout.flush()
            return out