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 중국어 웹사이트의 기타 관련 기사를 참조하세요!