ownload @PhantomJS usando um link javascript
Estou tentando raspar o site abaixo:
Se você clicar no pequeno botão no canto superior direito da tabela "exportar dados", um script javascript será executado e meu navegador fará o download do arquivo no formato .csv. Eu gostaria de poder escrever um script PhantomJS que possa fazer isso automaticamente. Alguma ideia
O botão acima é codificado em HTML como tal:
<a id="LB_cmdCSV" href="javascript:__doPostBack('LB$cmdCSV','')">Export Data</a></div>
Também encontrei esta função no código-fonte HTML:
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
Sou muito novo no PhantomJS / Javascript e poderia usar alguns indicadores aqui. Acho que encontrei todas as informações necessárias para fazer isso automaticamente (me corrija se estiver errado), mas não sei por onde começar a codificá-las. Obrigado por qualquer ajuda
EDIT - É assim que meu script se parece agora:
var page = new WebPage();
url = 'http://www.fangraphs.com/leaders.aspx?pos=all&stats=bat&lg=all&qual=0&type=8&season=2011&month=0&season1=2011&ind=0&team=0&rost=0& players=0';
page.open(encodeURI(url), function (status){
if (status !== "success") {
console.log("Unable to access website");
} else {
page.evaluate(function() {
__doPostBack('LB$cmdCSV', '');
});
}
phantom.exit(0);
});