我有一个包含 12 个文件的链接,我想仅使用一个命令下载所有文件Wget
。我使用 Cygwin 作为终端来运行Wget
。
链接是https://hydro1.gesdisc.eosdis.nasa.gov/data/NLDAS/NLDAS_FORA0125_M.002/1985/我只想要.grb
此链接下的所有文件。我已经尝试了以下代码,但它只是下载所有.xml
文件。
我发现一些建议https://disc.sci.gsfc.nasa.gov/recipes/?q=recipes/如何从HTTP服务下载数据文件(带wget),但我仍然无法解决问题。感谢您的帮助。
wget --load-cookies ~/.urs_cookies --save-cookies ~/.urs_cookies --keep-session-cookies -r -c -nH -nd -np -A nc4,xml "https://hydro1.gesdisc.eosdis.nasa.gov/data/NLDAS/NLDAS_FORA0125_M.002/1985/"
感谢大家的帮助,我已经解决了这个问题,但接下来又出现了一个更复杂的问题。它需要用户名和密码,应该是这样的,但我不知道该怎么做Create a .netrc file
,Create a cookie file
正如https://disc.sci.gsfc.nasa.gov/recipes/?q=recipes/如何从HTTP服务下载数据文件(带wget)。
这是我需要做的事情的简要说明。
To run wget, you need to set up .netrc and create a cookie file:
Create a .netrc file in your home directory.
a. cd ~ or cd $HOME
b. touch .netrc
c. echo "machine urs.earthdata.nasa.gov login <uid> password <password>" >> .netrc
where <uid> is your user name and <password> is your URS password
d. chmod 0600 .netrc (so only you can access it)
Create a cookie file. This file will be used to persist sessions across calls to Wget or Curl. For example:
a. cd ~ or cd $HOME
b. touch .urs_cookies
Wget
我想知道如何在 Windows 的 Cygwin中执行此操作。
答案1
仅查看您的示例,它显示-A nc4,xml
这只能解释下载.xml 文件,该链接中一定没有任何 nc4 文件。
无论如何,以下是man wget
有关的内容-A
:
Recursive Accept/Reject Options
-A acclist --accept acclist
-R rejlist --reject rejlist
Specify comma-separated lists of file name suffixes or patterns
to accept or reject. Note that if any of the wildcard
characters, *, ?, [ or ], appear in an element of acclist or
rejlist, it will be treated as a pattern, rather than a suffix.
In this case, you have to enclose the pattern into quotes to
prevent your shell from expanding it, like in -A "*.mp3" or -A
'*.mp3'.
因此,对于仅 grb 文件,请尝试使用-A grb
如下方法:
wget --load-cookies ~/.urs_cookies --save-cookies ~/.urs_cookies --keep-session-cookies -r -c -nH -nd -np -A nc4,xml "https://hydro1.gesdisc.eosdis.nasa.gov/data/NLDAS/NLDAS_FORA0125_M.002/1985/"
编辑后:
用户名和密码应该相当简单,尝试添加这些:
--user=user
--password=password
Specify the username user and password password for both FTP
and HTTP file retrieval. These parameters can be overridden
using the --ftp-user and --ftp-password options for FTP
connections and the --http-user and --http-password options for
HTTP connections.
再次从man wget
。并阅读--save-cookies file
其中的和 ``--read-cookies file` 选项,如果它们在 wget 中不起作用,那么从 Web 浏览器获取保存的 cookie 可能会很棘手。
答案2
简单。你缺少一个选项
wget --load-cookies ~/.urs_cookies --save-cookies ~/.urs_cookies --keep-session-cookies -r -c -nH -nd -np -R html,xml -A grb "https://hydro1.gesdisc.eosdis.nasa.gov/data/NLDAS/NLDAS_FORA0125_M.002/1985/"
-R
拒绝所有html
和xml
文件,-A
仅接受grb
文件