2017-09-08 1 views
-1

je reçois cette erreur lorsque je tente de télécharger un fichier à partir d'un lien que je reçois cette erreur, peu importe ce que je tente de regarder et de faire Im en utilisantErreur lors du téléchargement fichier url

urllib.error.HTTPError: HTTP Error 403: Forbidden 

Mon code est

elif message.content.startswith('``'): 
    countn = (count+1) 
    print(countn) 
    print('ADD') 
    meme = (message.content) 
    memen = meme.replace("``", "") 
    print(memen) 
    print('Converted') 
    urllib.request.urlretrieve(memen, meme) 
    await client.send_message (message.channel, "Added!") 

Répondre

0

403: INTERDIT signifie que le serveur vous refuse l'accès aux ressources, que ce soit parce que vous avez omis de fournir une authentification suffisante ou parce qu'il bloque l'agent utilisateur de python par défaut (Python.urllib/3.X).

urlretrieve est en fait une interface héritée car elle a été portée à partir de Python 2. Vous devriez envisager d'utiliser urlopen à la place.

Quoi qu'il en soit, une solution est d'ajouter un (falsifiée) agent utilisateur à votre demande, qui ne peut être fait en utilisant urlretrieve ...

headers = {"User-Agent": "Mozilla/5.0"} 
request = urllib.request.Request(url, headers=headers) 
resp = urllib.request.urlopen(request) 
with open(filename, "w") as file: 
    file.write(resp.read()) 

Ce problèmes ne vais pas de correctif pour les sites qui nécessitent un login, mais il va réparer beaucoup de sites qui ne le font pas.