Eu tento fazer download de um arquivo com wget
e curl
e é rejeitada com um erro 403 (proibido).
Eu posso ver o arquivo usando o navegador da web na mesma máquina.
Tento novamente com o agente de usuário do meu navegador, obtido por http://www.whatsmyuseragent.com . Eu faço isso:
wget -U 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' http://...
e
curl -A 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' http://...
mas ainda é proibido. Que outras razões podem existir para o 403 e de que maneiras eu posso alterar os comandos wget
e curl
para superá-los?
(não se trata de conseguir o arquivo - sei que posso salvá-lo no meu navegador; trata-se de entender por que as ferramentas de linha de comando funcionam de maneira diferente)
atualizar
Obrigado a todas as excelentes respostas dadas a esta pergunta. O problema específico que encontrei foi que o servidor estava verificando o referenciador. Adicionando isso à linha de comando, eu poderia obter o arquivo usando curl
e wget
.
O servidor que verificou o referenciador saltou através de um 302 para outro local que não executou nenhuma verificação; portanto, um curl
ou wget
daquele site funcionou corretamente.
Se alguém estiver interessado, isso aconteceu porque eu estava lendo esta página para aprender sobre CSS incorporado e estava tentando ver o css do site como exemplo. O URL real com o qual estava tendo problemas era esse e o curl
que acabei sendo é
curl -L -H 'Referer: http://css-tricks.com/forums/topic/font-face-in-base64-is-cross-browser-compatible/' http://cloud.typography.com/610186/691184/css/fonts.css
e o wget é
wget --referer='http://css-tricks.com/forums/topic/font-face-in-base64-is-cross-browser-compatible/' http://cloud.typography.com/610186/691184/css/fonts.css
Muito interessante.