【问题标题】:Casper.js unable to open JSON file when activated through python scriptCasper.js通过python脚本激活时无法打开JSON文件
【发布时间】:2014-03-17 03:23:01
【问题描述】:

我有一个 CasperJS 脚本,它打开一个包含搜索词的 JSON 文件并解析一个页面来寻找它们。当我从命令行运行它时它工作正常。

var casper = require('casper').create();
var fs = require('fs')
var names = fs.read('/var/www/html/tracker/names.json');
...

但是当我尝试使用 Python 通过 shell 脚本运行它时,它很难读取 JSON 文件。 fs.read 返回""

Python 脚本:

app = subprocess.Popen("/usr/local/bin/casperjs /var/www/html/tracker/scraper.js", shell=True)
app.wait()
out, errs = app.communicate()

【问题讨论】:

  • 为了加深谜团,子进程在保存为names.txt时可以很好地读取names.json。

标签: python phantomjs casperjs


【解决方案1】:

想通了。当然,我自己的愚蠢错误。

在问题中没有说清楚,但 Python 脚本首先准备 names.json,然后再通过子进程运行刮板。所以如果我们在上面显示的代码sn-p上加一点:

# Save JSON file
f = open('names.json', 'w')
f.write( json.dumps(json_ready, sort_keys=True, indent=4) )

# Query scraper
app = subprocess.Popen("/usr/local/bin/casperjs /var/www/html/tracker/scraper.js", shell=True)
app.wait()
out, errs = app.communicate()

问题?我忘了关闭f

# Save JSON file
f = open('names.json', 'w')
f.write( json.dumps(json_ready, sort_keys=True, indent=4) )
f.close()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多