Когда я просматриваю сайт A, используя обычный браузер (Chrome), и когда я нажимаю ссылку на веб-сайте A, Chrome imediatelly загружает отчет в виде 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 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
, я получаю HTML-код страницы A, и я не хочу этого, я хочу CSV файл, который мне нужно проанализировать с помощью JavaScript.