BeautifulSoup을 사용한 웹 페이지 텍스트 추출: 보이는 텍스트만 추출
웹 스크래핑에는 웹 페이지에서 특정 텍스트 콘텐츠를 검색하는 작업이 포함되는 경우가 많습니다. 널리 사용되는 HTML 구문 분석 라이브러리인 BeautifulSoup를 사용하면 스크립트, 주석, CSS 등 원치 않는 요소를 제외하고 웹페이지에 보이는 텍스트만 추출해야 하는 문제에 직면할 수 있습니다.
보이는 텍스트 식별
특정 HTML 요소에 보이는 텍스트가 포함되어 있는지 확인하려면 tag_visible 함수를 사용할 수 있습니다. 이 함수는 대상 요소의 상위 요소가 제외된 특정 태그 세트(예: 스타일, 스크립트, 헤드) 내에 있는지 또는 대상 요소가 주석인지 확인합니다. 두 조건 중 하나가 충족되면 함수는 False를 반환하여 해당 요소가 표시되지 않는 것으로 간주됩니다.
표시되는 텍스트 추출
웹페이지에서 표시되는 텍스트를 추출하려면, 다음 단계를 따르세요.
사용 예
아래 코드는 이러한 기술을 사용하여 웹 페이지에서 보이는 텍스트를 추출하는 방법을 보여줍니다.
from bs4 import BeautifulSoup from bs4.element import Comment import urllib.request def tag_visible(element): if element.parent.name in ['style', 'script', 'head', 'title', 'meta', '[document]']: return False if isinstance(element, Comment): return False return True def text_from_html(body): soup = BeautifulSoup(body, 'html.parser') texts = soup.findAll(text=True) visible_texts = filter(tag_visible, texts) return u" ".join(t.strip() for t in visible_texts) html = urllib.request.urlopen('http://www.nytimes.com/2009/12/21/us/21storm.html').read() print(text_from_html(html))
이 접근 방식을 활용하면 관련 없는 콘텐츠를 제외하고 웹 페이지에서 보이는 텍스트를 효과적으로 긁어낼 수 있습니다. 스크립트, 댓글, 기타 숨겨진 요소에서.
위 내용은 BeautifulSoup을 사용하여 웹 페이지에서 보이는 텍스트만 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!