ホームページ  >  記事  >  バックエンド開発  >  Web ページからテキストを抽出するときに「TypeError: can\'t use a string pattern on a bytes-like object in re.findall()」を解決する方法は?

Web ページからテキストを抽出するときに「TypeError: can\'t use a string pattern on a bytes-like object in re.findall()」を解決する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-25 02:41:11778ブラウズ

How to Resolve

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。