批量下载微博原图、视频、livephoto

一键打包下载微博中一贴的原图、视频、livephoto,收藏时本地自动备份

< 批量下载微博原图、视频、livephotoについてのフィードバック

レート:良 – スクリプトは良好に動作する

§
投稿日: 2020/01/06

请问可以增加个功能 只下载到预设位置 不打包吗

每次都从包里面解压出来很麻烦 而且可以提供更改命名方式的选项吗

Jeffrey Deng作者
§
投稿日: 2020/01/06
編集日: 2020/01/17

不能,js没有权限,你的要求需要用python爬虫。 如果不打包,一次性下很多图片,会有很多弹窗,会把你浏览器卡死。 解压不麻烦啊,你可以直接选解压到本文件夹,或者选择所有压缩包一起解压,

§
投稿日: 2020/04/29

@"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);
Jeffrey Deng作者
§
投稿日: 2020/04/29

@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);

感谢,我已经加上你的代码,还加了个图片预览,可以更新一下

返信を投稿

返信を投稿するにはログインしてください。