有沒有什麼辦法可以用casperjs下載CSV文件而不指定下載URL?我正在嘗試下載CSV文件,該文件的URL是在單擊下載按鈕時動態生成的。所以,我可能無法在這種情況下使用download()。casperjs下載文件時不指定url
回答
這將是不可能的,直到這個phantomjs問題就解決了http://code.google.com/p/phantomjs/issues/detail?id=52
根據記錄,它使用「resource.received」事件是已經成爲可能。 如果您收到這樣的標題:
Content-Disposition:Attachment;文件名=「ExportData.csv」
產生可以用下面的事件監聽器下載文件:
casper.on('resource.received', function(resource) {
if (resource.stage !== "end") {
console.log("resource.stage !== 'end'");
return;
}
if (resource.url.indexOf('ExportData.csv') > -1) {
console.log("Downloading csv file");
this.download(resource.url, 'ExportData.csv');
}
});
你用什麼版本? –
@DiegoBorges我不記得是哪個版本。但是我發現CASPER-1.1.0-DEV有這個功能:http://docs.casperjs.org/en/latest/events-filters.html –
我已經找到了一個解決方案。它不是很乾淨,但它的工作原理:
您需要構建一個全局數組,它將每個resource.received關聯一個文件名。
fileInfos[url]= parse_filename_from_responseHeader(resource)
如果url是您想要下載的資源,請先嚐試打開(url)。這將觸發resiyrce.received事件,解析頭並更新全局數組。
現在,在啓動casper.download(url)
之前,請查找fileInfos[url]
。
您會在fileInfos數組中找到與url對應的文件名。 如果需要,我可以詳細說明解決方案,但是由於問題已經過了幾年,所以我會等待下一步的闡述。
我會做的就是這樣的事情,但我知道我要去的文件名獲得:
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);
- 1. CasperJS下載複製文件夾路徑,而不是下載指定的文件
- 2. casperjs下載csv文件
- 3. 從POST附件下載CasperJS的文件
- 4. CasperJS - 下載生成的文件沒有URL
- 5. casperjs問題下載csv文件
- 6. 下載一個文件跨網域CasperJS
- 7. 根據casperjs中的mimetype下載文件
- 8. CasperJS重定向URL
- 9. 在循環中更改url時下載文件(指針請求)
- 10. 從特定URL下載文件太慢
- 11. 從給定的URL下載文件
- 12. 從URL下載文件時引發FileNotFoundException
- 13. 下載指定流中的文件?
- 14. 在指定的URL下載內容
- 15. java URL文件下載
- 16. Maven:從url下載文件
- 17. 從URL下載Python文件
- 18. 從url下載pdf文件
- 19. bash下載文件ftp url
- 20. 從url下載文件ColdFusion
- 21. 從url下載mp3文件
- 22. PAD文件下載URL
- 23. 下載使用DownLoadManager.Request從URL下載文件時失敗
- 24. 下載大小不指定
- 25. CasperJS選擇與指定的文本
- 26. 從Casperjs中彈出下載
- 27. iOS - 漸進式下載指示器下載文件時
- 28. 下載/指數* PHP文件
- 29. 文件下載(不下載?)
- 30. 從URL URL的PHP curl下載文件
我知道你沒有時間,你正在尋找一個團隊繼續在項目(兼容性PhantomJS的v2.0)。你有任何關於截止日期的想法? –