Maison  >  Article  >  développement back-end  >  Comment résoudre l'erreur « TypeError : impossible d'utiliser un modèle de chaîne sur un objet de type octets » ?

Comment résoudre l'erreur « TypeError : impossible d'utiliser un modèle de chaîne sur un objet de type octets » ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-19 11:59:03637parcourir

How to Resolve the `TypeError: can't use a string pattern on a bytes-like object` Error?

TypeError : impossible d'utiliser un modèle de chaîne sur un objet de type octets

Cette erreur se produit lorsque vous essayez d'utiliser un modèle de chaîne pour trouver des correspondances dans un objet de type octets, tel que la réponse d'une URL. Pour résoudre ce problème, vous pouvez convertir l'objet de type octet en chaîne avant de l'utiliser dans une recherche d'expression régulière.

Dans le contexte de votre code, vous essayez d'utiliser la fonction re.findall() pour trouver le titre d'une page Web. Cependant, la variable HTML est un objet de type octet et la variable de modèle est une chaîne. Pour résoudre ce problème, vous pouvez décoder la variable html à l'aide de la méthode decode(), en passant l'encodage approprié (tel que 'utf-8'), comme indiqué ci-dessous :

with urllib.request.urlopen(url) as response:
    html = response.read().decode('utf-8')

Après ce changement, le le code devrait fonctionner comme prévu et renvoyer le titre de la page Web.

Lectures complémentaires :

  • [Documentation Python sur la méthode decode()](https://docs.python. org/3/library/io.html#io.IOBase.decode)
  • [Documentation Python sur la récupération d'URL](https://docs.python.org/3/library/urllib.request.html# urllib.request.urlopen)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn