>백엔드 개발 >파이썬 튜토리얼 >Python의 HTML에서 깨끗한 텍스트를 효율적으로 추출하려면 어떻게 해야 합니까?

Python의 HTML에서 깨끗한 텍스트를 효율적으로 추출하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-29 22:58:11620검색

How Can I Efficiently Extract Clean Text from HTML in Python?

Python을 사용하여 HTML에서 텍스트 추출

목표는 Python의 HTML 파일에서 텍스트를 추출하여 얻은 출력을 복제하는 것입니다. 브라우저에서 텍스트를 복사하여 텍스트에 붙여 넣기 editor.

문제점

정규 표현식은 잘못된 형식의 HTML에는 충분히 강력하지 않습니다. Beautiful Soup은 종종 권장되지만 JavaScript와 같은 원치 않는 콘텐츠를 선택하고 HTML 엔터티를 해석하지 못할 수 있습니다.

유망한 대안: html2text

대신 마크다운을 생성하지만 일반 텍스트인 경우 html2text는 HTML 엔터티를 올바르게 처리하고 JavaScript를 무시합니다. 그러나 문서와 예제는 제한적입니다.

텍스트 추출을 위한 최적의 코드

아래 코드는 원치 않는 요소를 필터링하고 HTML을 보존하는 효과적인 솔루션을 제공합니다. 엔터티:

from urllib.request import urlopen
from bs4 import BeautifulSoup

url = "http://news.bbc.co.uk/2/hi/health/2284783.stm"
html = urlopen(url).read()
soup = BeautifulSoup(html, features="html.parser")

# Remove scripts and styles
for script in soup(["script", "style"]):
    script.extract()

# Extract text
text = soup.get_text()

# Convert line breaks and remove whitespace
lines = (line.strip() for line in text.splitlines())
chunks = (phrase.strip() for line in lines for phrase in line.split("  "))
text = '\n'.join(chunk for chunk in chunks if chunk)

print(text)

종속성

이 코드를 사용하려면 다음과 함께 설치된 BeautifulSoup4가 필요합니다:

pip install beautifulsoup4

위 내용은 Python의 HTML에서 깨끗한 텍스트를 효율적으로 추출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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