我试图制作一个自动下载Sentinel卫星数据的脚本。所以我尝试使用他们网站上的用户指南中提供的wget命令,但由于某种原因它不起作用。它一直返回500内部服务器错误,但当我尝试访问浏览器上的下载链接时,它工作正常。
所以,这是网站说明的链接。 https://scihub.copernicus.eu/twiki/do/view/SciHubUserGuide/5APIsAndBatchScripting#Download_via_Wget
以下是下载链接https://scihub.copernicus.eu/dhus/odata/v1/Products(' e94ce3a1-a9c8-4162-a856-ce1d8c4c029a')/ $ value
注意:您需要一个帐户才能下载数据。我已将我的凭据输入到wget命令,但它仍然无法正常工作。
答案 0 :(得分:0)
该网站可能会拒绝wget用户代理,这可以解释您可以使用浏览器下载,但不能使用wget。您可以在wget中假冒用户代理:
wget --header="Accept: text/html" --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0" ....
答案 1 :(得分:0)
从DHuS下载对正确的转义最为敏感。使用wget
,您至少需要转义$
符号(如果您有.netrc
文件,该命令实际上将立即为您工作):
wget "https://scihub.copernicus.eu/dhus/odata/v1/Products('e94ce3a1-a9c8-4162-a856-ce1d8c4c029a')/\$value"
缺点是它将输出保存在名为$value
的文件中。我发现curl
是使用ESA DataHub的更好的命令行客户端:
curl -JOn "https://scihub.copernicus.eu/dhus/odata/v1/Products('e94ce3a1-a9c8-4162-a856-ce1d8c4c029a')/\$value"
请注意-n
要使用.netrc
。您可以忽略它,而使用-u
进行身份验证。这将为文件使用正确的远程名称,并生成本地文件S1B_IW_GRDH_1SDV_20170607T100534_20170607T100559_005943_00A6CF_327E.zip
。