如何在 Windows 版 Cygwin 中使用 Wget 下载多个文件

如何在 Windows 版 Cygwin 中使用 Wget 下载多个文件

我有一个包含 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 fileCreate 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拒绝所有htmlxml文件,-A仅接受grb文件

相关内容