IT박스

Python / BeautifulSoup-요소에서 모든 태그를 제거하는 방법은 무엇입니까?

itboxs 2020. 12. 24. 23:27
반응형

Python / BeautifulSoup-요소에서 모든 태그를 제거하는 방법은 무엇입니까?


BeautifulSoup에서 찾은 요소에서 모든 태그를 제거하려면 어떻게해야합니까?


함께 BeautifulStoneSoup사라에서 bs4, 그것은 Python3에서도 간단

from bs4 import BeautifulSoup

soup = BeautifulSoup(html)
text = soup.get_text()
print(text)

내가 본 unwrap방법 에 대해 언급 한 답변이없는 이유는 무엇 입니까? 또는 더 쉬운 get_text방법은

http://www.crummy.com/software/BeautifulSoup/bs4/doc/#unwrap http://www.crummy.com/software/BeautifulSoup/bs4/doc/#get-text


get_text ()를 사용 하면 문서 또는 태그 아래의 모든 텍스트를 단일 유니 코드 문자열로 반환합니다.

예를 들어 다음 텍스트에서 다른 모든 스크립트 태그를 제거합니다.

<td><a href="http://www.irit.fr/SC">Signal et Communication</a>
<br/><a href="http://www.irit.fr/IRT">Ingénierie Réseaux et Télécommunications</a>
</td>

예상되는 결과는 다음과 같습니다.

Signal et Communication
Ingénierie Réseaux et Télécommunications

다음은 소스 코드입니다.

#!/usr/bin/env python3
from bs4 import BeautifulSoup

text = '''
<td><a href="http://www.irit.fr/SC">Signal et Communication</a>
<br/><a href="http://www.irit.fr/IRT">Ingénierie Réseaux et Télécommunications</a>
</td>
'''
soup = BeautifulSoup(text)

print(soup.get_text())

bs4에서 decompose 메서드를 사용할 수 있습니다.

soup = bs4.BeautifulSoup('<body><a href="http://example.com/">I linked to <i>example.com</i></a></body>')

for a in soup.find('a').children:
    if isinstance(a,bs4.element.Tag):
        a.decompose()

print soup

Out: <html><body><a href="http://example.com/">I linked to </a></body></html>

이것이 방법 인 것 같습니다! 저것과 같이 쉬운

이 줄을 사용하면 현재 요소 내의 모든 텍스트 부분을 결합합니다.

''.join(htmlelement.find(text=True))

참조 URL : https://stackoverflow.com/questions/16206380/python-beautifulsoup-how-to-remove-all-tags-from-an-element

반응형