J'essaie de télécharger un fichier avec wget
et curl
et il est rejeté avec une erreur 403 (interdite).
Je peux voir le fichier en utilisant le navigateur Web sur le même ordinateur.
Je réessaie avec l'agent utilisateur de mon navigateur, obtenu par http://www.whatsmyuseragent.com . Je fais ça:
wget -U 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' http://...
et
curl -A 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' http://...
mais c'est toujours interdit. Quelles autres raisons pourrait-il y avoir pour la 403, et de quelle manière puis-je modifier les commandes wget
et curl
pour les surmonter?
(Il ne s'agit pas d'obtenir le fichier. Je sais que je peux simplement l'enregistrer depuis mon navigateur. Il s'agit de comprendre pourquoi les outils de ligne de commande fonctionnent différemment.)
mise à jour
Merci à toutes les excellentes réponses apportées à cette question. Le problème spécifique que j'avais rencontré était que le serveur vérifiait le référant. En ajoutant ceci à la ligne de commande, je pourrais obtenir le fichier en utilisant curl
et wget
.
Le serveur qui a vérifié le référent a rebondi via un serveur 302 vers un autre emplacement qui n'a effectué aucune vérification. Un curl
ou wget
de ce site a donc fonctionné proprement.
Si quelqu'un est intéressé, c'est parce que je lisais cette page pour en savoir plus sur le CSS intégré et que j'essayais de regarder le fichier CSS du site pour un exemple. L'URL réelle avec laquelle j'avais des problèmes était celle-ci et curl
j'ai fini par
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
et le wget est
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
Très intéressant.