casperjs下载CSV文件 [英] casperjs download csv file
问题描述
我正在尝试使用以下代码从网站下载csv文件(广告报告).问题是,它将下载HTML页面而不是csv文件.我无法提供登录名后面的URL,但是从下面的URL下载Firefox时,情况与此类似
I am trying to download a csv file(advert report) from a site using the below code. The issue is, it will download the HTML page and not the csv file. I cannot give you the URL as it is behind the login, but it is similar case when you download Firefox from the below URL
http://www.mozilla.org/en-US/firefox/new/
这是一个GET请求,当我检查元素Network Tab时,get请求被取消.我是Casper的新手,不知道如何处理此类请求.任何帮助将不胜感激
It is a GET request and when I do inspect element Network Tab the get request gets Cancelled. I am new to Casper and don't know how to handle such requests. Any help would be appreciated
casper.then(function() {
var downloadURL = "";
this.evaluate(function() {
var downloadURL = "http://www.lijit.com"+jQuery("#dailyCSV").attr('href');
});
this.download(downloadURL, '/Users/Ujwal/Downloads/caspertests/stats.csv');
});
响应标题
Age:0
Cache-Control:max-age=0
Connection:keep-alive
Content-Disposition:attachment; filename=stats.csv
Content-Encoding:gzip
Content-Length:1634
Content-Type:text/x-csv
Date:Sat, 05 Oct 2013 15:28:21 GMT
Expires:Sat, 05 Oct 2013 15:28:21 GMT
P3P:CP="CUR ADM OUR NOR STA NID"
Server:PWS/8.0.16
Vary:Accept-Encoding
X-Px:ms h0-s28.p9-jfk ( h0-s62.p9-jfk), ms h0-s62.p9-jfk ( origin>CONN)
推荐答案
回答了我自己的问题,这是解决方法
Answered my own question, here is the solution
参考: https://github.com/knorrium/google-books-downloader /blob/master/gbd.js
//Download the daily csv
casper.then(function() {
this.click('#dailyCSV');
});
casper.on('resource.received', function (resource) {
"use strict";
if ((resource.url.indexOf("publisherCSV/?startDate=") !== -1) ) {
this.echo(resource.url);
var url, file;
url = resource.url;
file = "stats.csv";
try {
this.echo("Attempting to download file " + file);
var fs = require('fs');
casper.download(resource.url, fs.workingDirectory+'/'+file);
} catch (e) {
this.echo(e);
}
}
});
这篇关于casperjs下载CSV文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!