2016-09-18 84 views
-3

我正在嘗試在javascript中編寫腳本以從網站上刮取圖像並將它們保存到我的計算機中。如何使用JavaScript從網站上刮取圖像?

我設法使腳本隔離包含我想要使用jQuery的圖像的圖像標記。所以我有一個jQuery選擇:

<img src="sourceofimage.com/path/img"> 

我的問題是我怎麼能現在這個圖像保存到我的電腦?

我試過搜索,但是我得到的所有結果都是關於做下載按鈕或其他用戶面臨的任務。清楚的是,我將是唯一運行此腳本的人,並且將通過將其粘貼到控制檯中運行。

我只想要一種以編程方式下載圖像並在jQuery隔離它時設置其文件名的方法。這可能嗎?

編輯:有人可以解釋爲什麼這是接收這麼多downvotes?

回答

0

嘗試FS庫

fs.writeFile('logo.png', imagedata, 'binary', function(err){ 
     if (err) throw err 
     console.log('File saved.') 
0

這將適用於網頁上的每一個圖像這是一個錨的直接孩子,但你可以使用:

'$('a > img').each(function(){ 
    var $this = $(this); 
    $this.parent('a').attr('href', $this.attr('src')); 
    }); 

但它會做工作。

只有一件事,禁用JS的用戶會看到一個空href的錨點。下面將實現與簡化你的代碼(HTML清潔劑),並加入優雅降級的好處相同的最終結果:

'<img src="folio/1.jpg" class="downloadable" /> 
$('img.downloadable').each(function(){ 
    var $this = $(this); 
$this.wrap('<a href="' + $this.attr('src') + '" download />') 
0

在Web瀏覽器就基本不能做你不能直接寫該文件系統(可能與瀏覽器擴展,但我沒有看過這段時間)。

使用節點沒有什麼能阻止你做這樣的事情:

  • 使用HTTP來獲取HTML
  • 使用jQuery解析HTML - 像$(html).find('img');
  • 生成一個HTTP請求到每個圖像下載它們
  • 使用fs將其保存到磁盤