场景: 有时候想要下载技术会议的 PPT 文件到本地, 由于 PPT 文件比较多, 一个个下载花时间, 也不好玩.
目标: 自动化下载这些 PPT/PDF 文件.
方案: 直接在Chrome的Console中输入js代码, 模拟点击操作, 自动下载文件。
例: 下载所有A链接
<a href='#' class='unfollow' οnclick='alert("1");'>Click me!</a>
<a href='#' class='unfollow' οnclick='alert("2");'>And me!</a>
var links = document.getElementsByTagName('a');
for (i=0; i< 10; i++){
links[i].click();
}
例: 下载阿里云栖大会PDF
页面中的 html 片段如下:
<a href="https://yq.aliyun.com/attachment/yunqi?id=3401"; target="_blank" class="download">PDF下载</a>
Chrome 控制台里面脚本代码这样写:
var links = document.getElementsByClassName('download');
[].slice.call(links).forEach(function(link) {
if (link.innerHTML == 'PDF下载') {
setInterval(function() {
link.click();
}, 5000);
}
});
或者这样同步下载:
function wait(ms){
var start = new Date().getTime();
var end = start;
while(end < start + ms) {
end = new Date().getTime();
}
}
for (i=900; i< 999; i++){
links[i].click();
wait(6000);
};
# Javascript中query selector的使用
var tds = document.getElementsByTagName('td');
for (i=0; i< 30; i++){
td = tds[i];
if(td.querySelector('td > p >a')){
console.log(td.querySelector('td >p >a'));
}
}
var cells = document.querySelectorAll("#score > tbody > tr > td:nth-of-type(2)");