2015-02-24 26 views
11

Od pewnego czasu borykam się z tym problemem.CasperJS - pobieranie wygenerowanego pliku bez adresu URL

Próbuję pobrać plik CSV wygenerowany przez przycisk "pobierz raport" Google Adwords. Mogę kliknąć link dobrze i zobaczyć zasób w tle. Problem polega na tym, że aby go pobrać, casperJS/phantomJS wymaga adresu URL do pliku ... ale CSV jest generowany na miejscu i ma ten sam adres URL, co strona, na której się znajduje (po tym linku po prostu prowadzi do strona domowa, a nie plik CSV, więc casperJS nie może go pobrać).

Czy istnieje sposób na zapisanie tego zasobu bez adresu URL?

Znalazłem rozwiązania: downloading a file that comes as an attachment in a POST request response in PhantomJs

Ale niestety, przycisk Raport Google Adwords nie ma formy, które mogą odwołać.

+0

wypróbowałeś to: http://stackoverflow.com/questions/12461096/casperjs-download-file-without-specifying-url ? –

+0

Możesz sprawdzić, czy są jakieś żądania do serwera z narzędzi Google Go lub innych narzędzi do debugowania. – jcubic

Odpowiedz

1

Zrobiłem prostą analizę żądań z narzędzi chrom autorów: Żądanie pobrania idzie (dla mnie) na następujący adres 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}} 

Nagłówki żądań:

: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}} 

Usunąłem dane potencjalnie specyficzne dla mnie przez zastąpienie przy użyciu znacznika {{cenzura}}.

+0

Więc ... czy to rozwiązało twój problem? –