6

wget 下载云诺网盘文件

 3 years ago
source link: https://blog.lilydjwg.me/2012/10/12/use-wget-to-download-yunio-files.35911.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

wget 下载云诺网盘文件

本文来自依云's Blog,转载请注明。

今天下载别人在云诺网盘上分享的文件,无奈网络太差,火狐才下了不到百分之一就认为下载完成了。每当这个时候,我便会祭出「中国特色网络」下的下载利器——wget。每当浏览器下不好文件时,wget 总会不屈不挠地一次次坚持,直到文件真正下载完成。

不过,这次对付云诺这个互联网友好发展的阻碍者时出现了问题。wget 总是下载到那个网页,即使指定 UserAgent 或者 Cookie 也没用。后来经过我不懈地尝试,发现指定Referer即可,例如:

wget --header 'Referer: http://s.yunio.com/xMliei' http://s.yunio.com/public/download/token/xMliei

另外,要取得正确的文件名,需要使用--content-disposition选项。不过,可能还需要使用ascii2uni -a J来处理百分号转义。下边是我的~/.wgetrc

# 不要乱转义中文
--restrict-file-names=nocontrol
# 使用重定向后的文件名
--trust-server-names=on
--content-disposition=on

发送到 Kindle

Category: 网络 | Tags: wget 网络 | Read Count: 12078

评论 (18)
maplebeats 说:
9 年前

wget明显不如aria2嘛。。。wget单线程已经让我受不了了

依云 说:
9 年前

aria2 我还不怎么会用啊。

yx_wh 说:
9 年前

初见wget的时候完全没想到这是神器啊(笑)

偶扒站用的wget命令放在.zshrc里面:
alias wget1='wget -r -c -np --remote-encoding=en_US.utf-8 --local-encoding=en_US.utf-8'
alias wget2='wget1 --execute=http_proxy=localhost:8087 '

依云 说:
9 年前

:-)
我的在自己的 wiki 里,查了好久文档才写好的:
wget -t 5 -Q 500m -nH -r -E -l inf -k -p -np URL

yx_wh 说:
9 年前

另外还想问个问题:zsh按ctrl+r可以上溯历史记录。能不能向下溯历史记录呢?(就是从最开始找起)

依云 说:
9 年前

你可以先回到历史记录开头("^[<" beginning-of-buffer-or-history),再向下搜索("^S" history-incremental-search-forward,或者 ^Xs)。
注意要使用 ^S,需要关闭终端的流控制:stty -ixon 或者 setopt noflowcontrol(这个选项在 tmux 中有问题)。

yx_wh 说:
9 年前

谢了~
我试了半天才知道^[<是
alt+shift+<

lilo 说:
9 年前

为何说云诺是【互联网友好发展的阻碍者】?至少给我的感觉是云诺出linux下网盘客户端这一点就比国内某些公司友好些。

依云 说:
9 年前

你想想,通过云诺给好友分享了一张截图。好友要看到这张截图需要怎么办呢?
首先,需要开启一个现代浏览器。这个一般还好。
其次,需要载入6个CSS文件和9个JavaScript文件。共计650KiB左右。网页设计的原则是,对用户重要的内容率先载入。而云诺,在载入这么多毫不相干的东西之后才会显示你真正需要的东西。而天朝的网络你懂的。
最后,不给出指向原始文件的 URL,不能直接使用下载工具下载。这不便于在脚本/命令行中使用。(比如你在安装 Linux 系统,需要网上的某个文件(比如辛辛苦苦找到别人分享的驱动补丁)才能进入图形界面。如果它在 dropbox 里,w3m 即可下载之。如果在云诺,除非你事先知道或者人脑解析网页代码,不然你没办法把东西下回来。)

御宅暴君 说:
6 年前

现在云诺已经倒闭了。

sunus 说:
8 年前

嗨,我是来自python-cn和TJLUG的, 看到你这篇post.想起我已经用了有一段时间自己写的一点东西,就是为了解决wget和浏览器header/cookies配合的script.
在这,喜欢可以拿去用:) 迅雷离线/youtube测试完全没问题, 我用得最多的2项.
https://gist.github.com/4155207

依云 说:
8 年前

这个不错,省得自己研究该怎么下载了。不过对迅雷快传有效吗,它好像是对不同的 IP 生成不同的下载地址的。
另外,youtube 之类的视频网站下载我用 you-get,挺好用的。https://github.com/soimort/you-get

sunus 说:
8 年前

这个不负责生成下载地址的,那是由cliwget负责的. 然后cliwget是根据浏览器的状态实时生成指令的, 所以应该是没问题的. 我用她快1个月了 ,还没出现bug.. 用Vim开文件主要是为了使用重命名等功能(修改wget的-O 参数)

依云 说:
8 年前

我说的就是 cliwget 啦。改名什么的我直接在命令行上改就可以了。复杂的也可以直接调编辑器编辑。bash 按 ^X^E,zsh 要自己载入并绑定:
zle -N edit-command-line
bindkey '^X^E' edit-command-line

cckowin 说:
8 年前

wget的--content-disposition选项虽然能取得正确的文件名,但是和-c选项好像不能很好的配合。
wget的断点续传好像是通过url地址最后的文件名或者-O选项指定的文件名来判断的。
上次好不容易下载下来的一个文件,一续传又重头开始下载了。
不知道博主有没有好的解决办法。

依云 说:
8 年前

咦,我还没注意到这个呢。一般比较大又需要续传的文件用 aria2c 下载就好啦=w=

cckowin 说:
8 年前

额,试试,用惯wget了,aria2c有类似--content-disposition的功能吗

依云 说:
8 年前

不知道呢,好像用它下载的文件名都挺正确的样子。反正也就是个文件名啦,大不了自己手动改一下。

[取消回复评论]

昵称 登录 E-mail: *
Web:
Twitter:
当有新评论通过 E-mail 通知我

loading captcha image...
(输入验证码)

or Ctrl+Enter


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK