2015-02-24 15 views
11

Sono stato alle prese con questo per un po '.CasperJS - download del file generato senza URL

Sto provando a scaricare il file CSV generato dal pulsante "download report" di Google AdWords. Posso fare clic sul link bene e vedere la risorsa in background. Il problema è che per scaricarlo, casperJS/phantomJS richiede un URL per il file ... ma il CSV viene generato sul posto e ha lo stesso URL della pagina in cui mi trovo (seguendo quel link si passa semplicemente al homepage, non il file CSV in modo che casperJS non possa scaricarlo).

C'è un modo per salvare quella risorsa senza l'URL?

ho trovato questa soluzione: downloading a file that comes as an attachment in a POST request response in PhantomJs

Ma, purtroppo, Google Adwords pulsante segnalazione non ha forma che io possa fare riferimento.

+0

hai provato questo: http://stackoverflow.com/questions/12461096/casperjs-download-file-without-specifying-url ? –

+0

Puoi verificare se ci sono richieste al server da strumenti di google dev o altri strumenti di debugger. – jcubic

risposta

1

ho fatto una semplice analisi richiesta con strumenti di Chrome per sviluppatori: La richiesta di download va (per me) al seguente URL:

Request URL:https://adwords.google.com/reports/advanced/ReportDownload?authuser=0 

formdata:

__rds:{{censored}} 
__rrd:{{censored}} 
__u:{{censored}} 
__c:{{censored}} 
__rfl:8,9,10 
token:{{censored}}:{{censored}} 

intestazioni di richiesta:

:authority:adwords.google.com 
:method:POST 
:path:/reports/advanced/ReportDownload?authuser=0 
:scheme:https 
accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/ *;q=0.8 
accept-encoding:gzip, deflate 
accept-language:en-US,en;q=0.8,de-DE;q=0.6,de;q=0.4,hr;q=0.2,sr;q=0.2 
cache-control:max-age=0 
content-length:501 
content-type:application/x-www-form-urlencoded 
cookie: {{censored}} 
dnt:1 
origin:https://adwords.google.com 
referer:https://adwords.google.com/reports/advanced/AdvancedReporting?__c={{censored}}&__u={{censored}}&authuser=0&__o=cues 
upgrade-insecure-requests:1 
user-agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36 
x-client-data:{{censored}} 

Ho rimosso dati potenzialmente specifici per me da replac con il tag {{censored}}.

+0

Quindi ... questo ha risolto il tuo problema? –