当我使用普通浏览器(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'))时,我可以在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进行解析。
page.onFileDownload
。 - Artjom B.