Maison > développement back-end > Tutoriel Python > Comment résoudre 'TypeError : impossible d'utiliser un modèle de chaîne sur un objet de type octets dans re.findall()\' lors de l'extraction de texte à partir de pages Web ?

Comment résoudre 'TypeError : impossible d'utiliser un modèle de chaîne sur un objet de type octets dans re.findall()\' lors de l'extraction de texte à partir de pages Web ?

Mary-Kate Olsen
Libérer: 2024-11-25 02:41:11
original
811 Les gens l'ont consulté

How to Resolve

TypeError : utilisation d'un modèle de chaîne sur un objet de type octets dans re.findall()

Lors de la tentative d'extraction de texte à l'aide d'expressions régulières en Python, vous pouvez rencontrer l'erreur « TypeError : impossible d'utiliser un modèle de chaîne sur un objet de type octets dans re.findall() ». Cette erreur se produit lorsque vous utilisez un modèle d'expression régulière de chaîne pour rechercher un objet de type octets, ce qui est souvent rencontré lorsque vous travaillez avec des pages Web.

Pour résoudre ce problème, il est nécessaire de décoder l'objet de type octets en un chaîne avant d’appliquer la recherche regex. Dans le code fourni :

import urllib.request
import re

url = "http://www.google.com"
regex = r'<title>(,+?)</title>'
pattern  = re.compile(regex)

with urllib.request.urlopen(url) as response:
   html = response.read().decode('utf-8') # Decode the bytes-like object

title = re.findall(pattern, html)
print(title)
Copier après la connexion

En décodant la variable html à l'aide de .decode('utf-8'), nous la convertissons en une chaîne Unicode qui peut être traitée par le modèle regex. Cela permettra au code d'extraire avec succès le titre de la page Web.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal