jQuery — 從網頁上一次下載多個檔案

ARON HACK 亞倫害的
3 min readApr 4, 2019

政府開放資料平台上提供很多免費的內政資料,如
現有公司登記家數-按縣市分

如下圖,某些項目中把每月的檔案獨立上傳為一個csv檔,從2010年到2019年總共有一百多個。我像笨蛋一樣點了二十幾個後,突然想,難道沒有快一點的方法嗎?

查了一些資料後,發現我們可以用jQuery和Chrome的開發者工具(DevTools)來完成這件事。

載入jQuery

首先,先寫一行jQuery看看,這個目的是要測試jQuery是否能正常運作。

$('html')

DevTools回傳錯誤,所以我們再用Rob W大大提供的code重新載入jQuery,送出後會跳出對話視窗,確認是否要覆蓋。

javascript:if(!window.jQuery||confirm('Overwrite\x20current\x20version?\x20v'+jQuery.fn.jquery))(function(d,s){s=d.createElement('script');s.src='https://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.js';(d.head||d.documentElement).appendChild(s)})(document);

再次確認jQuery是否正常運作。

觀察HTML結構

我們觀察一下頁面中的HTML結構,發現每一個下載連結都有一個class叫ff-icon-csv。

我們先用下面的程式測試第一個 ff-icon-csv 的連結是否能順利下載。

var url = $('.ff-icon-csv:first').attr("href"); window.open(url);

成功後就可以加上each,下載全部的檔案。

$('.ff-icon-csv').each(function(){ var url = $(this).attr("href"); window.open(url); });

彈出式視窗阻擋器

執行上面的程式後,在網址欄的尾端應該會跳出訊息,因為目前的程式會開啟大量的視窗,所以會被彈出式視窗阻擋,只要設為允許即可。

實際操作影片

https://youtu.be/rm5lIgN3fYo

Originally published at www.aronhack.com.

--

--

ARON HACK 亞倫害的
ARON HACK 亞倫害的

Written by ARON HACK 亞倫害的

唸過設計,當過行銷企劃,蓋過電商網站的零售業數據分析師。 https://www.aronhack.com/ | https://www.linkedin.com/in/aronwu/

No responses yet