Automatize o download diário do arquivo csv no site, clique no botão

Gostaria de automatizar o processo de visitar um site, clicar em um botão e salvar o arquivo. A única maneira de baixar o arquivo neste site é clicar em um botão. Você não pode navegar para o arquivo usando um URL.

Eu tenho tentado usar phantomjs e casperjs para automatizar esse processo, mas não tive nenhum sucesso.

Recentemente, tentei usar a solução de brandon aquiPegue o conteúdo do recurso no CasperJS ou PhantomJS

Aqui está o meu código para isso

var fs = require('fs');
var cache = require('./cache');
var mimetype = require('./mimetype');
var casper = require('casper').create();

casper.start('http://www.example.com/page_with_download_button', function() {

});

casper.then(function() {    
     this.click('#download_button');
 });

 casper.on('resource.received', function (resource) {
     "use strict";
    for(i=0;i < resource.headers.length; i++){
        if(resource.headers[i]["name"] == "Content-Type" && resource.headers[i]["value"] == "text/csv; charset-UTF-8;"){
            cache.includeResource(resource);
        }
    }
 });

 casper.on('load.finished', function(status) {
    for(i=0; i< cache.cachedResources.length; i++){
        var file = cache.cachedResources[i].cacheFileNoPath;
        var ext = mimetype.ext[cache.cachedResources[index].mimetype];
        var finalFile = file.replace("."+cache.cacheExtension,"."+ext);
        fs.write('downloads/'+finalFile,cache.cachedResources[i].getContents(),'b');
    }
});

casper.run();

Eu acho que o problema pode ser causado pelo meu cachePath estar incorreto no cache.js

exports.cachePath = 'C:/Users/username/AppData/Local/Ofi Labs/PhantomJS';

Devo usar algo além das barras invertidas para definir o caminho?

Quando eu tento

 casperjs --disk-cache=true export_script.js

Nada é baixado. Após um pouco de depuração, descobri que cache.cachedResources está sempre vazio.

Eu também estaria aberto a soluções fora do phantomjs / casperjs.

ATUALIZAR

Não estou mais tentando fazer isso com o CasperJS / PhantomJS. Estou usando a extensão chromeTampermonkey sugerido por dandavis. Tampermonkey foi extremamente fácil de descobrir. Instalei o Tampermonkey, naveguei até a página com o link de download e, em seguida, cliquei em Novo Script em tampermonkey e adicionei meu código javascript.

document.getElementById("download_button").click();

Agora, sempre que eu navego para a página no meu navegador, o arquivo é baixado. Criei um script em lote que se parece com isso

set date=%DATE:~10,4%_%DATE:~4,2%_%DATE:~7,2%
chrome "http://www.example.com/page-with-dl-button"
timeout 10
move "C:\Users\user\Downloads\export.csv" "C:\path\to\dir\export_%date%.csv"

Defino esse script em lote para executar todas as noites usando o agendador de tarefas do Windows.

Sucesso!

questionAnswers(1)

yourAnswerToTheQuestion