如何使用wget命令下载保管箱文件?


72

似乎我只能使用chrome和firefox等资源管理器下载保管箱文件。如果我使用wget下载,则会得到html格式的文件。为什么?

例如,您可以打开此链接

您不会得到该文件的内容,为什么?以下是要下载的test.txt的一部分,这根本不是test.txt的内容。

那么可以使用wget而非资源管理器下载Dropbox文件吗?

document.observe('script:loaded', function() {
SharingModel.init('test\x2etxt', Util.from_json('\x7b\x22item\x5fid\x22\x3a\x20\x22\x22\x2c\x20\x22secure\x5fhash\x22\x3a\x20\x22\x22\x2c\x20\x22subpath\x22\x3a\x20\x22\x22\x2c\x20\x22tkey\x22\x3a\x20\x22mx9eqve5l2ipgyk\x22\x7d'))
SharingModel.init_file()
$('emsnippet-9911dfc627e1d541').innerHTML = 'test\x2etxt'.em_snippet(50, 0.750).escapeHTML();
$('emsnippet-add7879f5d805012').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
$('emsnippet-981ac0639529f983').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
FilePreview.init_text('https\x3a\x2f\x2fdl\x2edropbox\x2ecom\x2fs\x2fmx9eqve5l2ipgyk\x2ftest\x2etxt', 0)                        });
                    } else if (window.jQuery) {
jQuery(function () {
SharingModel.init('test\x2etxt', Util.from_json('\x7b\x22item\x5fid\x22\x3a\x20\x22\x22\x2c\x20\x22secure\x5fhash\x22\x3a\x20\x22\x22\x2c\x20\x22subpath\x22\x3a\x20\x22\x22\x2c\x20\x22tkey\x22\x3a\x20\x22mx9eqve5l2ipgyk\x22\x7d'))
SharingModel.init_file()
$('emsnippet-9911dfc627e1d541').innerHTML = 'test\x2etxt'.em_snippet(50, 0.750).escapeHTML();
$('emsnippet-add7879f5d805012').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
$('emsnippet-981ac0639529f983').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
FilePreview.init_text('https\x3a\x2f\x2fdl\x2edropbox\x2ecom\x2fs\x2fmx9eqve5l2ipgyk\x2ftest\x2etxt', 0)                        });
                    } 

我无法使用命令获取test.txt

wget https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.tx


ls -l 
-rw-rw-r-- 1 mirror mirror  30K Sep  6 15:01 test.txt

愚蠢的问题:尝试使用浏览器下载时是否登录了DropBox?

1
wget在您的链接上使用检索test.txt(包含4个字节的“测试”)对我来说很好。也许是您的某些.wgetrc原因导致了这个?
jjlin 2012年

@jjlin您的命令是什么?矿是添加上述
hugemeow

5
我用过wget --no-check-cert https://dl.dropbox.com/s/mx9eqve5l2ipgyk/test.txt。这对我来说效果很好,但是如果您要强制下载,则可以考虑尝试尝试下载wget --no-check-cert 'https://dl.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1'(注意?dl=1查询参数)。
jjlin 2012年

@jjlin,所以如果我想从Dropbox下载文件,也许需要一个脚本:)
hugemeow 2012年

Answers:


21

您问题中的链接不是指向文件的链接,而是指向该文件的Dropbox页面的链接。
如果要使用wget它进行下载,则应从右击下载按钮时从下拉菜单中复制链接以直接下载。

就我而言,这很好。但是,有时从浏览器外部下载链接时出现的问题与链接本身以外的参数有关。当您仅复制链接时不存在的常见元素是站点cookie。

试试这个很酷的FF插件以获得正确的wget链接

而且,特别是如果我们谈论的是已知的工作站,而不是临时的工作站,那么您当然可以安装Dropbox客户端。这将是最简单的方法,只需让您的盒子成为文件结构的一部分,而无需进行繁琐的下载。
请参阅此askubuntu.com帖子Dropbox下载页面。


4
尝试在浏览器中获取直接链接会弹出广告以提供升级选项。我看到了另一个涉及的答案(superuser.com/a/486351/106977?dl=1,但这也不允许一个人访问该链接(可能是由于Box禁止使用,除非您升级)。
bgoodr

@amotzg是否可以使用带有标志的从dropbox恢复下载的方法--continue?看来对我没用。(unix.stackexchange.com/questions/174850/...
prayagupd


1
此附加组件提供了共享的保管箱链接,该链接需要密码才能下载。请注意,右键单击“下载”按钮,选择cliget,将提供指向?dl = 0输出的URL,该文件较小。将其更改为?dl = 1可提供正确的下载路径。
JonTheNiceGuy

116

只需?dl=1在链接末尾添加!例如:https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1

这样就可以在不向文件中添加任何内容的情况下,对相关文件进行精细检索。

还有一件事!如果您想将文件保存在其他位置,请使用以下-O选项

wget -O /root/Desktop/test.txt "https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1"

而且,如果您想使用一些GUI,则可以使用它zenity来标记文件将要下载到的位置!

这是一个示例代码:

#!/bin/bash
dir=$(zenity --file-selection --directory)
wget -O $dir/test.txt "https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1"

太棒了,可以直接使用...
slotishtype

只是使用您的建议获得了一个共享文件夹,并收到了一个了不起的zip文件(未命名)。太棒了!非常感谢!!
拉法雷诺2014年

1
比接受的答案好得多。这很有帮助,谢谢。
Seiyria

3
这种方法仍然有效吗?使用命令wget 'https://www.dropbox.com/sh/my_folder_url?dl=1'我不断得到ERROR 400: Bad Request
Paul Rougieux

现在我明白了500 Internal Server Error,Dropbox是一个真正的废话。
Avio

15

Dropbox已对其进行了修改,以便wget可以执行正确的操作并检索文件,而不是插页式广告。

使用“共享链接”检索到文件的直接链接。


这应该是正确的答案,与共享链接无关紧要。
davidparks21年

真好!我得到了wget: No match输出,使用单引号内的链接即可解决(可能是由于?url中的链接?)
Matifou

3

看到这个问题,并认为这可能对尝试一次下载多个文件的人有所帮助。

这是您可以使用的小型Windows CMD /批处理脚本。
可以很容易地将其调整为在Bash shell(Mac / Linux / etc)下工作。
它使用CURL。WGET还应该进行一些小的调整。

1.安装Windows版Curl

2.将各个共享链接放在一个文本文件中(每行1个)。

3.将文本文件中的所有“?dl = 0”参数调整为“?dl = 1”并保存。

4.将下面的脚本复制到名为“ geturllist.cmd”的文件(或您选择的文件)

5.打开CMD提示符并执行CMD脚本。

下载的文件将显示在您执行脚本的当前工作目录中。

注意:
您必须具有正确格式的共享链接,才能打开“知道链接的任何人”。此脚本不适用于基于Dropbox登录/电子邮件的受密码保护的链接或共享。
注意:
如果单个文件或文件组(自动压缩)超过一定大小,它将失败,并显示错误消息(“(zip)文件太大。请将其添加到您的Dropbox中。”)。在这种情况下,您必须按其说明进行操作。由于共享链接不可直接下载,因此此脚本将不起作用。

示例文本文件:(
“ RandomShareCharacters / Here”将替换为共享链接中的内容)

 https://www.dropbox.com/sh/RandomShareCharacters/Here?dl=1
 https://www.dropbox.com/sh/RandomShareCharacters/Here?dl=1
 https://www.dropbox.com/sh/RandomShareCharacters/Here?dl=1

geturllist.cmd:

@echo off
set count=0
setlocal ENABLEDELAYEDEXPANSION
IF [%1]==[] GOTO BLANK
SET PARAMETER=%1
SET _PARAMETER=%PARAMETER:~0,2%

IF [%1]==[/?] GOTO HELP
IF [%1]==[--help] GOTO HELP
IF %_PARAMETER%==-h GOTO HELP

IF EXIST %1 (

  for /f "delims=" %%u in (%1) do (

      set /a count=count+1
      curl -kL "%%u" -O -J

      REM For other share sites:
      REM (ZIP EXAMPLE) if no filename type header sent:
      REM > curl -kL "%%u" -o "!count!.zip"
      REM > echo "!count!.zip"
      REM Will download file(s) called 1.zip, 2.zip, etc.
      )
  ) ELSE (
GOTO BLANK
)
GOTO DONE

:HELP
ECHO.
ECHO    Usage:
ECHO.
ECHO    geturllist [path]\[filename]
ECHO.
ECHO.
ECHO    Required Parameters:
ECHO.
ECHO    [filename]  A text file with one url per line
ECHO    -h      Help
ECHO.
GOTO DONE

:BLANK
ECHO.
ECHO Error: no input file found

:HELPMSG
ECHO.
ECHO Try -h for Help

:DONE
ECHO.
ECHO Exiting.
ECHO.

用法示例:

geturllist.cmd X:\somepath\dropbox.txt


1
没有评论的否决票很可爱。谢谢。伤害你的感觉吗?
bshea

1
令人难以置信的是,为什么人们对这个答案不满意,为什么不满意。
Josyula Krishna

0

您将得到一个名为“文件”的名称或一些怪异的名称...只需将该文件重命名为您想要的名称即可。实际下载的文件是您想要的仅具有奇怪名称且没有文件类型属性的文件。


-2

对于此类下载,最简单,最有保证的方法是使用google chrome的开发人员工具。

  • 按F12打开开发人员工具
  • 转到网络标签
  • 按下载链接开始下载
  • 在网络事件中找到下载事件
  • 右键单击该行,然后选择“复制为cURL(bash)”或Windows(如果需要)

  • 该网址将如下所示:

    curl "http://yoururl.com/yourfile" -H "Pragma: no-cache" -H "Origin: http://yoururl.com" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: en-US;q=0.8,en;q=0.6,fr;q=0.4" -H "User-Agent: Mozilla/5.0 bla bla" -H "Content-Type: text/plain;charset=UTF-8" -H "Accept: */*" -H "Cache-Control: max-age=0" -H "Referer: http://yoururl.com/downloadpage" -H "Cookie: e07214fb60a1a; _ga=98987; " -H "Connection: keep-alive"
    
  • 替换curlwget

  • 替换-H "some headers"--header="some headers"
  • 将其粘贴到bash窗口并添加-o参数。(如果不添加此参数,则输出将打印到控制台。
  • 按Enter键并享受下载。

OP请求使用wget。
twerdster

你可以很容易地转换从卷曲给wget:stackoverflow.com/a/25044709/531524
侯赛因Yağlı
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.