Як я можу просто зняти всі теги з елемента, який я знаходжу в BeautifulSoup?
Відповіді:
З BeautifulStoneSoup
Gone In 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 () , він повертає весь текст у документі або під тегом у вигляді єдиного рядка Unicode.
Наприклад, видаліть усі різні теги сценарію з наступного тексту:
<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:
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>
Код, щоб просто отримати вміст як текст замість html:
Параметр 'html_text' - це рядок, який ви передасте в цій функції для отримання тексту
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_text, 'lxml')
text = soup.get_text()
print(text)
Ось вихідний код: ви можете отримати текст, який точно міститься в URL-адресі
URL = ''
page = requests.get(URL)
soup = bs4.BeautifulSoup(page.content,'html.parser').get_text()
print(soup)
get_text()
замістьgetText()
.