ダウンロードURLを指定せずにcasperjsでCSVファイルをダウンロードする方法はありますか? ダウンロードボタンをクリックするとURLが動的に生成されるCSVファイルをダウンロードしようとしています。そのため、この状況では download() をうまく使用できない場合があります。
4584 次
4 に答える
1
私はその解決策を見つけました。あまりきれいではありませんが、機能します:
ファイル名が添付されたすべての resource.received を関連付けるグローバル配列を作成する必要があります。
fileInfos[url]= parse_filename_from_responseHeader(resource)
ダウンロードしたいリソースが url の場合は、最初に open(url) を試してください。これにより resiyrce.received イベントがトリガーされ、ヘッダーが解析され、グローバル配列が更新されます。
を起動する前にcasper.download(url)
、 を探しますfileInfos[url]
。
fileInfos 配列内の URL に対応するファイル名が見つかります。必要に応じて解決策について詳しく説明できますが、質問はすでに数年前のものであるため、
次のポケで詳しく説明するのを待ちます。
于 2015-05-14T15:24:04.760 に答える
0
この phantomjs の問題が解決されるまで、これは不可能ですhttp://code.google.com/p/phantomjs/issues/detail?id=52
于 2012-09-18T06:05:13.043 に答える
0
私がすることは次のようなものですが、受け取るファイル名はわかっています。
this.waitForResource(function check(resource){
res = resource;
// regular expression to test
return /thefilename/.test(resource.url);
}, function(){
this.echo("Resource found: " + res.url);
// download the file
this.download(res.url, path);
}, null, 10000);
于 2017-09-06T15:50:51.627 に答える