Urllib : erreur 403 sur un site

Résolu
cs_perrierbertrand Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -

Bonjour,

j'ai un problème avec urllib

>>> a=urllib.request.urlopen("https://www.free.fr").read()
>>> a=urllib.request.urlopen("https://www.allocine.fr/dvd/nouveau").read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.10/urllib/request.py", line 216, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.10/urllib/request.py", line 525, in open
    response = meth(req, response)
  File "/usr/lib/python3.10/urllib/request.py", line 634, in http_response
    response = self.parent.error(
  File "/usr/lib/python3.10/urllib/request.py", line 563, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.10/urllib/request.py", line 496, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.10/urllib/request.py", line 643, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden

avec free.fr ça fonctionne mais pas avec la page https://www.allocine.fr/dvd/nouveau/

est-ce que ça fonctionne chez vous ? ais-je été blacklisté ?

merci


Linux / Firefox 108.0


3 réponses

xHaMaz Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   17
 

Bonjour,

Y'a des sites qui utilise des mécanismes de protection contre les requêtes automatisées et bloque les requêtes provenant des scripts.

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 

bonjour, j'obtiens aussi cette erreur 403.

0
cs_perrierbertrand Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   1
 

merci pour vos réponse

la solution est de préciser l'user agent dans urllib

request_site = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
code_page_html = urllib.request.urlopen(request_site).read()

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 

peux-tu alors marquer la discussion comme résolue?

0