简单的爬虫,配合列表UI,实现steam高清视频一键下载。
实际使用效果:
1.选中链接,实用超级面板,直接弹出下载列表。
整个过程连贯流畅,非常方便。
脚本代码:
var https = require("https")
function StringFormat() {
if (arguments.length == 0)
return null;
var str = arguments[0];
for (var i = 1; i < arguments.length; i++) {
var re = new RegExp('\\{' + (i - 1) + '\\}', 'gm');
str = str.replace(re, arguments[i]);
}
return str;
}
function loadPage(url) {
var pm = new Promise(function(resolve, reject) {
https.get(url, function(res) {
var html = '';
res.on('data', function(d) {
html += d.toString()
});
res.on('end', function() {
resolve(html);
});
}).on('error', function(e) {
reject(e)
});
});
return pm;
}
let current_url = '{{input}}'
var idmPath = process.env['UtoolsCoreAssets'] + '/IDM/App/IDMan.exe'
let vlinkArr = []
let imglinkArr = []
let opt = []
loadPage(current_url).then(function(d) {
var dom = quickcommand.htmlParse(d)
//核心,弄到高清视频和缩略图链接,它们是一一对应的
var videoUrls = dom.querySelectorAll('[data-mp4-hd-source]')
var thumbUrls = dom.querySelectorAll('.movie_thumb')
//视频链接
videoUrls.forEach((item, index) => {
let url = item.getAttribute('data-mp4-hd-source')
let filename = path.basename(url)
vlinkArr.push(url)
})
//缩略图链接
thumbUrls.forEach((item, index) => {
let url = item.getAttribute('src')
imglinkArr.push(url)
})
vlinkArr.forEach((item,index)=>{
opt.push(`<img src=${imglinkArr[index]} style='max-height:40px'>${item}</img>`)
})
//使用的quickcommand.showSelectList的html形式,能自定义显示效果
quickcommand.showSelectList(opt,{optionType:'html'}).then((x) => {
var result = vlinkArr[x.id]
var cmd = StringFormat('{0} /d "{1}"', idmPath, result)
child_process.exec(cmd)
quickcommand.setTimeout(()=>{
utools.outPlugin()
},1000)
})
});