Je suis nouveau sur Python. Chaque fois que j'utilise Try Except, NameError apparaît. Cela fonctionne parfaitement lorsqu'il n'y a pas de gestion des exceptions.
HTTP Error 404: Not Found Traceback (most recent call last):line 12, in <module> bs = BeautifulSoup(htm.read(), 'html.parser') NameError: name 'htm' is not defined
Erreur de sortie
from urllib.request import urlopen from bs4 import BeautifulSoup from urllib.error import HTTPError try: htm = urlopen('https://uiit.tech/placements/placements.pp') except HTTPError as e: print(e) bs = BeautifulSoup(htm, 'html.parser') print(bs.h1)
3 Réponses :
Essayez de faire:
except urllib.error.HTTPError as e: print(e)
vous vous trompez
htm = urlopen (' https://uiit.tech/placements/placements.pp ')
cela devrait être:
htm = urlopen (' https://uiit.tech/placements/placements.php ')
J'ai fait cela intentionnellement pour vérifier l'exception de HTTPError 404. Parce qu'il donnera une exception qui sera traitée ensuite.
Vous voulez que la tentative fonctionne avec html
dans la section try
. Actuellement, en raison d'une exception, il n'est jamais défini.
from urllib.request import urlopen from bs4 import BeautifulSoup from urllib.error import HTTPError try: htm = urlopen('https://uiit.tech/placements/placements.pp') bs = BeautifulSoup(htm, 'html.parser') print(bs.h1) except HTTPError as e: print(e)
Merci Cela a fonctionné. Cette NameError était due à la portée de la variable dans le bloc TRY.
Où obtenez-vous
NameError
? Veuillez ajouter le message d'erreur complet.Pour éviter d'avoir
NameError
, vous pouvez utiliserhtml = ""
juste avantprint (e)
.