>  기사  >  백엔드 개발  >  웹 페이지에서 텍스트를 추출할 때 \'TypeError: re.findall()\의 바이트열류 객체에 문자열 패턴을 사용할 수 없습니다'를 해결하는 방법은 무엇입니까?

웹 페이지에서 텍스트를 추출할 때 \'TypeError: re.findall()\의 바이트열류 객체에 문자열 패턴을 사용할 수 없습니다'를 해결하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-25 02:41:11778검색

How to Resolve

TypeError: re.findall()의 바이트 유사 객체에 문자열 패턴 사용

정규 표현식을 사용하여 텍스트를 추출하려고 할 때 Python에서는 "TypeError: re.findall()의 바이트열류 객체에 문자열 패턴을 사용할 수 없습니다"라는 오류가 발생할 수 있습니다. 이 오류는 문자열 정규식 패턴을 사용하여 웹 페이지 작업 시 자주 발생하는 바이트열류 객체를 검색할 때 발생합니다.

이 문제를 해결하려면 바이트열류 객체를 정규식 검색을 적용하기 전의 문자열입니다. 제공된 코드에서:

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 변수를 디코딩하여 이를 정규식 패턴으로 처리할 수 있는 유니코드 문자열로 변환합니다. 이렇게 하면 코드가 웹페이지 제목을 성공적으로 추출할 수 있습니다.

위 내용은 웹 페이지에서 텍스트를 추출할 때 \'TypeError: re.findall()\의 바이트열류 객체에 문자열 패턴을 사용할 수 없습니다'를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.