問題描述
去知網下載統計年鑑的數據,發現只能一個文件一個文件的下載(尚未找到其他接口),如下圖所示:
一個一個地點擊太麻煩,於是想到用js代碼實現批量下載。
實現方法
用的是谷歌瀏覽器,鼠標右鍵 -> 檢查,查看 html 頁面的元素的層級結構,找到對應的超鏈接即可。
代碼
var lists = new Array(); //創建一個數組
var trs = $("#Content table.dhmltable tbody tr");
for(var j = 0, len = trs.length; j < len; j++) // 之前誤用while循環一直錯!
{
if(j > 2)
{
var tds = $(trs[j]).children("td");
var urls = $(tds[0]).children("a");
var url = $(urls[1]).attr("href");
lists.push(url);
//window.open(url, '_blank').location;
}
}
for(var j = 0, len = lists.length; j < len; j++){
//console.log(lists[j]);
window.open(lists[j], '_blank').location;
}
最後在控制檯輸入代碼運行即可:
瀏覽器設置
可以在谷歌瀏覽器的“設置 -> 高級”中關閉“下載前詢問每個文件的保存位置”選項,這樣就不會每次有下載任務就彈窗詢問了。當然,爲了安全起見,下載完成後最好記得改回來。