如何将 page.evaluate 内的结果写入文件?当将结果放入 console.log 时,此代码工作正常,但写入文件时,使用 ts
会引发错误。
page.evaluate(function(url) {
function getHTTPResponseString(url, callback) {
try {
var xhr = new XMLHttpRequest();
xhr.onload = function() {
if (this.status == 200) {
var u8 = new Uint8Array(this.response), bs = [];
for (var i = u8.length - 1; i >= 0; --i) {
bs[i] = String.fromCharCode(u8[i]);
}
callback(bs.join(''));
} else {
console.log(this.statusText);
callback('');
}
}
xhr.open('GET', url, true);
xhr.responseType = 'arraybuffer';
xhr.send();
} catch (e) {
console.log(JSON.stringify(e));
}
}
getHTTPResponseString(url, function(result) {
console.log(result);
})
}, url);
最佳答案
我发现可以通过在 page.evaluate
内部调用 window.callphantom()
来传递数据,然后通过 page.onCallback< 处理传递的数据
事件:
page.onCallback = function(result) {
var fs = require('fs');
fs.write('file.out', result, 'w');
};
getHTTPResponseString(url, function(result) {
console.log(result);
window.callPhantom(result);
})
关于javascript - page.evaluate - 如何写入其中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30221435/