我正在尝试使用 cURL 命令将文件从 FTP 服务器下载到我计算机上的本地驱动器。我试过了
curl " ftp://myftpsite " --user name:password -Q "CWD /users/myfolder/" -O "myfile.raw"
但它返回一个错误,指出:
curl:远程文件名没有长度!
curl:尝试“curl --help”或“curl --manual”以获取更多信息
curl:(6)无法解析主机:myfile.raw;没有请求类型的数据记录
我尝试了其他一些方法,但似乎没有任何效果。
另外,我不太确定如何指定我希望将文件下载到哪个文件夹。我该怎么做?
我正在尝试运行curl命令并收到此错误:
'http" not supported or disabled in libcurl
Run Code Online (Sandbox Code Playgroud)
我查看了我的位置curl.exe,找到C:\Program Files\GDAL并删除了它。
错误仍然存在。这是curl.exe在C:\Anaconda3\Library\bin,所以我也删除了它。
错误仍然存在。有一个更curl.exe在$PATH。
所以错误与可执行文件无关。我该如何解决?
我正在编写一个脚本,该脚本使用 cURL 从内部 Web 服务器中提取数据。我可以明确地将 --user 与 --ntlm 结合使用,并且一切正常,但我无法让它识别登录的人并透明地传递它。如果我在 Chrome/Firefox/IE 中访问同一个站点,它会立即授予我权限而没有任何提示(如果这很重要,我们将在此处使用代理)。服务器正在使用 IIS。
curl 在命令行上显示这样的进度:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
8 1000M 8 85.2M 0 0 57k 0 1:06:13 0:05:38 1:00:35 47k
Run Code Online (Sandbox Code Playgroud)
本例中显示的速度为47k。但是,这是什么意思?这是:
是吗:
我在 mac 上,有一个我想从 ftp 服务器下载的文件列表。连接有点问题,所以我希望它在连接断开时重试并恢复。
我知道我可以用 wget 做到这一点,但不幸的是 Mac OS X 没有 wget。我可以安装它,但要做到这一点(除非我遗漏了一些东西),我需要先安装 XCode 和 MacPorts,我想避免这种情况。
Curl 虽然看起来是可用的,但我不知道它是如何工作的或如何真正使用它。如果我在文本文件中有一个文件列表(每行一个完整路径,例如ftp://user:pass@server/dir/file1),我如何使用 curl 下载所有这些文件?我可以让卷曲永不放弃吗?比如,无限重试并从停止的地方继续下载等等?
当使用 curl 调用某个 url 时,它简化了 url 中的路径(例如 from /a/../bto /b)。我怎么能告诉 cUrl 不要这样做?
$ curl -V
curl 7.35.0 (x86_64-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP
$ curl -v 'localhost/a/../b'
* Rebuilt URL to: localhost/b
Run Code Online (Sandbox Code Playgroud) 输入以下命令
curl -k email@mail.com:password https://www.example.com
Run Code Online (Sandbox Code Playgroud)
返回以下错误
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://mail.google.com/mail/">here</A>.
</BODY></HTML>
badauth
Run Code Online (Sandbox Code Playgroud)cacert.crt从这里下载文件后
http://www.cacert.org/index.php?id=3
Run Code Online (Sandbox Code Playgroud)
然后将cacert.crt文件重命名为cacert.pem
然后尝试:
curl --cacert /path/to/cacert.pem email@mail.com:password https://www.example.com
Run Code Online (Sandbox Code Playgroud)
但得到同样的错误。
然后尝试:
curl https://www.example.com
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
curl: (60) SSL 证书问题:无法获得本地颁发者证书 更多详情请点击:http : //curl.haxx.se/docs/sslcerts.html
curl 默认使用证书颁发机构 (CA) 公钥 (CA 证书) 的“捆绑”执行 SSL 证书验证。如果默认包文件不够用,您可以使用 --cacert 选项指定备用文件。
如果此 HTTPS 服务器使用由捆绑中表示的 CA 签署的证书,则证书验证可能因证书问题而失败(它可能已过期,或者名称可能与 URL 中的域名不匹配)。
如果您想关闭 curl 对证书的验证,请使用 -k(或 --insecure)选项
所以我试过 -k
curl -k https://www.example.com
Run Code Online (Sandbox Code Playgroud)
但当然得到错误
Badauth
我猜我的证书文件有问题,但我不知道从哪里获取证书文件,或者一旦我有了它怎么处理它。
我当然使用浏览器登录没有问题,但我想使用命令行自动执行此过程,以便我可以通过 WiFi …
我想从终端获取这个 python 库的 tarball。 https://github.com/simplegeo/python-oauth2/downloads
但是,我不能简单地调用
wget https://github.com/simplegeo/python-oauth2/tarball/master
Run Code Online (Sandbox Code Playgroud)
因为这样做会检索网页。如何从终端获取此资源?
(以下是背景故事,如果您愿意,可以跳到“问题:”)
我的一门课程有一个网页,它接受输入文本(预计是 Python 代码),然后给出一些标记化的响应。它旨在用作我们正在编写的 Python 词法分析器的参考。我正在尝试自动化我的测试过程,并且能够在不打开浏览器、来回复制文本等的情况下检查我的代码。所以这就是我想要做的:
我有一个名为“x.py”的示例 python 文件,我想将它发布到服务器,就好像我已经填写了该表格一样。我试过了:
curl --data-urlencode "file=@x.py" http://matt.might.net/apps/pylex/pylex.php
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这行不通,因为显然"@x.py"是作为我的文件内容发布的(也就是说,"file=@x.py"是发布的内容,而不是"file=<contents-of-x.py>")。我试过了--form,--data但那些也没有用。
问题:
具体来说,如果我有一个包含非 url 编码内容的文件,并且该文件的内容需要成为 POST 的一部分并与特定名称(在本例中为file)相关联,那么完成此操作的正确方法是什么?