PhantomJS descarga usando un enlace de JavaScript
Estoy intentando raspar el siguiente sitio web:
Si hace clic en el botón pequeño en la parte superior derecha de la tabla titulada "exportar datos", se ejecuta un script javascript y mi navegador descarga el archivo en formato .csv. Me gustaría poder escribir un script PhantomJS que pueda hacer esto automáticamente. ¿Algunas ideas
El botón anterior está codificado en HTML como tal:
<a id="LB_cmdCSV" href="javascript:__doPostBack('LB$cmdCSV','')">Export Data</a></div>
También encontré esta función en el código fuente 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>
Soy muy nuevo en PhantomJS / Javascript y podría usar algunos punteros aquí. Creo que he encontrado toda la información que necesito para hacer esto automáticamente (corrígeme si me equivoco), pero no estoy seguro de por dónde empezar a codificarla. Gracias por cualquier ayuda
EDIT: así es como se ve mi script en este momento:
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);
});