簡體   English   中英

如何使用casperjs下載沒有URL的文件

[英]How to download file without url using casperjs

我正在嘗試使用casperjs下載csv文件,但我卻得到了html頁面的代碼。

我找不到事件處理程序,所以我不知道如何獲取文件! 下面是html代碼,顯示的是單擊該圖像時下載的csv文件的圖像。 我搜索了javascript文件,但沒有找到與此圖像相關的任何內容(例如,單擊該圖像時調用的函數)

<p align=right>
<input type="image" name="ctl00$ExportCSV" id="ctl00_ExportCSV" title="Export data to CSV file" src="images/csv.png" style="border-width:0px;" />
</p>

我嘗試了以下代碼,但沒有成功! :(

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");
      var fs = require('fs');
      casper.download(resource.url, fs.workingDirectory+'/ExportData.csv');
   }
});

任何幫助如何下載文件? 非常感謝!!

首先, casper.download()的前兩個參數為“字符串url”和“字符串目標”。 “字符串目標”是您要下載的資源的名稱,而不是您希望將資源下載到的地方,這是我假定您將其解釋為的原因,因為您將fs.workingDirectory用作“字符串目標”的一部分。 ' 此處查看casper.download()的示例用法,並仔細查看。

此外,似乎在您發布的html代碼中,您嘗試下載的是.png文件名csv.png,而不是實際的.csv文件,但這可能是我的誤解。 如果你想下載一個.png文件,使用casper.captureSelector所看到這里

我相信您正在嘗試使用答案中的代碼,因此,我有最后一條建議可以使您的代碼正常工作。 看來您已復制粘貼了代碼,所以我必須確保: if (resource.url.indexOf('ExportData.csv') > -1) {僅在'ExportData.csv'實際上有效的行您的資源名稱。 使用console.log( resource.header )行檢查console.log( resource.header )的名稱。 該名稱也應該是您的“字符串目標”。

我希望這有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM