【问题标题】:How to download a file using command line如何使用命令行下载文件
【发布时间】:2016-09-03 11:48:37
【问题描述】:

我需要使用命令行将以下文件下载到我的远程计算机:

download link

重点是,如果我使用 curl 的 wget,我只会得到一个 html 文档。但是,如果我在浏览器(在我的笔记本电脑上)中输入这个地址,它就会开始下载。 现在,我的问题是,由于访问我的远程机器的唯一方法是通过命令行,我如何使用命令行直接在该机器上下载它?

谢谢

【问题讨论】:

  • Em... scp 来自您的机器?
  • 我可以在此页面上看到 cactcha 附加到下载按钮。
  • 当我点击该链接时,它要求我注册一个表格。这是您的命令行get 请求所发生的事情。这就是下载 html 页面的原因。
  • 实际上它们是几个文件并且相当大。所以,我更喜欢直接下载到远程机器上。

标签: bash download wget remote-access


【解决方案1】:

假设您使用的是linux terminal

您可以使用像Lynx 这样的命令行浏览器来点击链接并下载文件。

您提供的链接不是普通的文件链接,此链接将文件名作为GET 变量发送,服务器发送另一个带有表单的页面作为对该请求的响应。所以 wget,cURL 就不行了。

【讨论】:

  • 我认为 txt 模式下的 lynx 不会处理 CAPTcha
  • @the.Legend 是的,也许 OP 应该在他的本地机器上开始下载,从网络选项卡获取实际文件地址并将其与 wget 一起使用。
  • 我从未使用过 Lynx 或任何其他基于命令行的浏览器。所以,很抱歉这个幼稚的问题。但是它们也显示图像吗?因为,据我记得,这个网站使用的是 catcha;所以我也需要能够看到图像。
  • 您必须以图形模式启动links 浏览器(因为lynx 没有图形选项)才能呈现站点图像。通过 SSH 执行此操作可能有点复杂
【解决方案2】:

该网站可能会跟踪会话并检查您是否已提交数据并确认您不是机器人

尝试不同的方法:通过 scp 将其从您的机器复制到远程:

scp /localpath/to/file username@remotehost.com:/path/to/destination

或者,您可以将 cookie 从本地计算机导出到远程,然后使用“--load-cookies 文件”选项将它们传递给 wget,但如果站点还跟踪会话 ID 到 IP,则不能保证它会 100% 工作

这是用于导出 cookie 的 Firefox 扩展: https://addons.mozilla.org/en-US/firefox/addon/export-cookies/

一旦你有了 cookies.txt 文件,只需将它 scp 到远程机器并使用“--load-cookies 文件”选项运行 wget

【讨论】:

  • 是的,没错。我只是想起来了。所以,我认为没有办法直接在远程机器上下载它们。
  • OP 可能没有足够的带宽来执行此操作,有时直接在远程服务器上下载内容更节省时间。
  • 是的。这就是为什么我提到导出 cookie 的替代方法。我假设提供的 URL 是浏览器的下载管理器实际得到的?请检查一下,我可能有更好的链接
  • 我想试试这个解决方案,但是如何在不使用浏览器的情况下使用 firefox 导出和导入 coockies?我以前从来没有这样做过。你有什么想法吗?
【解决方案3】:

这里是语料库的作者之一。 正如我的一个朋友所指出的,这个工具解决了所有的问题。

https://addons.mozilla.org/en-GB/firefox/addon/cliget/

安装后,您只需单击下载链接并将生成的命令复制到远程计算机。刚刚试了一下,完美运行。我们应该把这些信息放在下载页面上。

【讨论】:

    猜你喜欢
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 2019-10-27
    相关资源
    最近更新 更多