私は以下のウェブサイトをこすり取ろうとしています:
「データのエクスポート」というタイトルの表の右上にある小さなボタンをクリックすると、javascriptスクリプトが実行され、ブラウザがファイルを.csv形式でダウンロードします。これを自動的に実行できるPhantomJSスクリプトを記述できるようにしたいと思います。何か案は?
上記のボタンは、次のようにHTMLにコード化されています。
<a id="LB_cmdCSV" href="javascript:__doPostBack('LB$cmdCSV','')">Export Data</a></div>
この関数は、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>
私はPhantomJS/Javascriptに非常に慣れていないので、ここでいくつかのポインターを使用できます。これを自動的に行うために必要なすべての情報を見つけたと思いますが(間違っている場合は修正してください)、コーディングをどこから始めればよいかわかりません。助けてくれてありがとう。
編集-これは私のスクリプトが今どのように見えるかです:
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);
});