wget命令保持返回错误500但链接在浏览器中正常工作

时间:2017-06-30 01:30:55

标签: wget

我试图制作一个自动下载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命令,但它仍然无法正常工作。

2 个答案:

答案 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