TypeError: re.findall() のバイト様オブジェクトで文字列パターンを使用する
正規表現を使用してテキストを抽出しようとしたときPython では、「TypeError: のバイト様オブジェクトでは文字列パターンを使用できません」というエラーが発生する場合があります。 re.findall()」。このエラーは、文字列の正規表現パターンを使用してバイトのようなオブジェクトを検索すると発生します。このエラーは、Web ページを操作するときによく発生します。
この問題を解決するには、バイトのようなオブジェクトをデコードする必要があります。正規表現検索を適用する前の文字列。提供されたコード:
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)
.decode('utf-8') を使用して html 変数をデコードすることにより、正規表現パターンで処理できる Unicode 文字列に変換します。これにより、コードが Web ページのタイトルを正常に抽出できるようになります。
以上がWeb ページからテキストを抽出するときに「TypeError: can\'t use a string pattern on a bytes-like object in re.findall()」を解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。