Por que o wget não está chamando todo o endereço da web?

2

Eu tenho um script de teste com o comando:

wget http://api.mesowest.net/v2/stations/timeseries?token=000&start=200505010000&end=200510310000&vars=air_temp_high_24_hour,air_temp_low_24_hour,relative_humidity,sea_level_pressure&units=english&output=csv&obtime=local&STID=KPHX     

mas a saída do wget é

gdev@gdev-samsung:~/$ ./test
gdev@gdev-samsung:~/$ --2015-06-14 16:56:52--  http://api.mesowest.net/v2/stations/timeseries?token=f11c52999e0144dcb4461f4fb3ef2b53
Resolving api.mesowest.net (api.mesowest.net)... 63.251.153.118
Connecting to api.mesowest.net (api.mesowest.net)|63.251.153.118|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9560276 (9.1M) [application/json]
Saving to: ‘timeseries?token=f11c52999e0144dcb4461f4fb3ef2b53’

100%[========================================================================>] 9,560,276   1.52MB/s   in 5.9s   

2015-06-14 16:57:01 (1.54 MB/s) - ‘timeseries?token=f11c52999e0144dcb4461f4fb3ef2b53’ saved [9560276/9560276]

O link do site está usando acidentalmente algum tipo de caractere especial que o wget está cortando? Obrigado por qualquer ajuda

    
por Need4Sleep 14.06.2015 / 23:02

1 resposta

3

Você tem caracteres especiais no seu URL, como ? .

A melhor opção seria incluir o URL completo com aspas simples para que esses caracteres especiais não sejam manipulados pelo Shell:

wget 'http://api.mesowest.net/v2/stations/timeseries?token=000&start=200505010000&end‌​=200510310000&vars=air_temp_high_24_hour,air_temp_low_24_hour,relative_humidity,s‌​ea_level_pressure&units=english&output=csv&obtime=local&STID=KPHX'

Como observação: ao tentar sua URL, encontrei uma "permissão negada".

Dependendo do seu método de autenticação, você pode ter que passar algum login:

wget --user=user --http-password=pass 'http://....'
    
por user2196728 14.06.2015 / 23:50