一键打包下载微博中一贴的原图、视频、livephoto,收藏时本地自动备份
< 批量下载微博原图、视频、livephotoについてのフィードバック
不能,js没有权限,你的要求需要用python爬虫。 如果不打包,一次性下很多图片,会有很多弹窗,会把你浏览器卡死。 解压不麻烦啊,你可以直接选解压到本文件夹,或者选择所有压缩包一起解压,
@"Jeffrey Deng" 说道: 不能,js没有权限,你的要求需要用python爬虫。 如果不打包,一次性下很多图片,会有很多弹窗,会把你浏览器卡死。 解压不麻烦啊,你可以直接选解压到本文件夹,或者选择所有压缩包一起解压,
直接下载个人觉得还是可以有的,用处就是在下载单独一张GIF的时候,微博现在的GIF前端是直接显示视频的无法直接保存,只为了下载一张图打包下载后再解压出来或者只打印URL再去打开下载都挺麻烦的,下载视频其实也同理,不过视频姑且比较大。其实即使直接下载十多张图对浏览器也压力不大,浏览器会自己判断提示是否允许,指定位置下载JS肯定是没权限的,不过抛出下载让浏览器自己处理还是可以的。我看了下代码其实已经写了直接下载的方法和选项,只不过没有调用,测了一下方法也是可以用的,问题在非同域的视频图片链接的download属性不会生效,浏览器会忽略下载直接在新页面打开这些图片和视频,所以urlDownload
方法里面应该使用ajaxDownload
配合downloadBlobFile
替代downloadUrlFile
才能做到真正的直接下载。还有大概是因为这个方法没实际使用过吧,文件名也是缺考虑的
。。。不过折腾了半天想了想,其实在打印链接那里直接放个列表把下载链接嵌进去不就可以了,这样想下载可以直接右键链接手动下载,想复制也不需要打开控制台复制,个人折腾了一下在打印那里添加了如下实现
const $pop = $('<div class="W_layer W_layer_pop " style="right: 4px;top: 40px; max-width: 90%;"><div class="content" style="padding: 15px;"><ul></ul></div></div>');
$wb_card.find('.WB_feed_detail').append($pop);
$.each(photos, function(i, photo) {
$pop.find('ul').append(`<li><a href="${photo.url}" target="_blank" download="${photo.fileName}" class="clearfix">${photo.url}</a></li>`);
});
function remove(ev) {
if(!$pop[0].contains(ev.target)){
$pop.remove();
$('body').off("click", remove);
}
}
$('body').on("click", remove);
@indefined 说道:
@"Jeffrey Deng" 说道: 不能,js没有权限,你的要求需要用python爬虫。 如果不打包,一次性下很多图片,会有很多弹窗,会把你浏览器卡死。 解压不麻烦啊,你可以直接选解压到本文件夹,或者选择所有压缩包一起解压,
直接下载个人觉得还是可以有的,用处就是在下载单独一张GIF的时候,微博现在的GIF前端是直接显示视频的无法直接保存,只为了下载一张图打包下载后再解压出来或者只打印URL再去打开下载都挺麻烦的,下载视频其实也同理,不过视频姑且比较大。其实即使直接下载十多张图对浏览器也压力不大,浏览器会自己判断提示是否允许,指定位置下载JS肯定是没权限的,不过抛出下载让浏览器自己处理还是可以的。我看了下代码其实已经写了直接下载的方法和选项,只不过没有调用,测了一下方法也是可以用的,问题在非同域的视频图片链接的download属性不会生效,浏览器会忽略下载直接在新页面打开这些图片和视频,所以
urlDownload
方法里面应该使用ajaxDownload
配合downloadBlobFile
替代downloadUrlFile
才能做到真正的直接下载。还有大概是因为这个方法没实际使用过吧,文件名也是缺考虑的。。。不过折腾了半天想了想,其实在打印链接那里直接放个列表把下载链接嵌进去不就可以了,这样想下载可以直接右键链接手动下载,想复制也不需要打开控制台复制,个人折腾了一下在打印那里添加了如下实现
const $pop = $('<div class="W_layer W_layer_pop " style="right: 4px;top: 40px; max-width: 90%;"><div class="content" style="padding: 15px;"><ul></ul></div></div>'); $wb_card.find('.WB_feed_detail').append($pop); $.each(photos, function(i, photo) { $pop.find('ul').append(`<li><a href="${photo.url}" target="_blank" download="${photo.fileName}" class="clearfix">${photo.url}</a></li>`); }); function remove(ev) { if(!$pop[0].contains(ev.target)){ $pop.remove(); $('body').off("click", remove); } } $('body').on("click", remove);
感谢,我已经加上你的代码,还加了个图片预览,可以更新一下
请问可以增加个功能 只下载到预设位置 不打包吗
每次都从包里面解压出来很麻烦 而且可以提供更改命名方式的选项吗