当我使用普通浏览器(Chrome)浏览网站 A 时,当我点击网站 A 上的链接时,Chrome 会立即下载 CSV 文件形式的报告。
当我检查服务器响应标头时,我得到以下结果:
Cache-Control:private,max-age=31536000
Connection:Keep-Alive
Content-Disposition:attachment; filename="report.csv"
Content-Encoding:gzip
Content-Language:de-DE
Content-Type:text/csv; charset=UTF-8
Date:Wed, 22 Jul 2015 12:44:30 GMT
Expires:Thu, 21 Jul 2016 12:44:30 GMT
Keep-Alive:timeout=15, max=75
Pragma:cache
Server:Apache
Transfer-Encoding:chunked
Vary:Accept-Encoding
现在,我想使用 PhantomJS 下载并解析该文件。我设置page
onResourceReceived
侦听器以查看 Phantom 是否会接收/下载文件。
clientRequests.phantomPage.onResourceReceived = function(response) {
console.log('Response (#' + response.id + ', stage "' + response.stage + '"): ' + JSON.stringify(response));
};
当我发出 Phantom 请求下载文件时(这是 page.open('URL OF THE FILE')),我可以在 Phantom 日志中看到该文件已下载。以下是日志:
"contentType": "text/csv; charset=UTF-8",
"headers": {
"name": "Date",
"value": "Wed, 22 Jul 2015 12:57:41 GMT"
},
"name": "Content-Disposition",
"value": "attachment; filename=\"report.csv\"",
"status":200,"statusText":"OK"
我收到了文件及其内容,但如何访问文件数据?当我打印当前的 PhantomJS 时page
对象,我获取了页面 A 的 HTML,但我不想要它,我想要 CSV 文件,我需要使用 JavaScript 对其进行解析。