Очистить текст в теге div с некоторыми другими тегами с текстом - очистить только текст тега div - PullRequest
1 голос
/ 07 августа 2020

Я хотел очистить текст из тега div, но у него есть вложенные теги, каждый из которых также имеет несколько текстов, но когда я попытался очистить текст, все тексты были очищены. Я хотел игнорировать тексты из вложенных тегов div. хотел только очистить текст из div. Вот то, что я уже пробовал.


import bs4



content = '''<div class="_6ku5"><h4 class="_6ku6">Some Text Here.</h4><ul class="_6ku7"><li>Another Text Here</li><li>also text here</li><li>Be alert</li><li>Play safely</li></ul><br/><h4 class="_6ku6">score:</h4>43<h4 class="_6ku6">Last Updated:</h4>04 Agoosto 2020= date</div>'''


sp = bs4.BeautifulSoup(content, "html5lib")

mob = sp.find_all("div", class_="_6ku5")

print('\n\n',mob[0].get_text(),'\n\n')

print(mob[0].find_all(class_="_6ku6")[2].get_text())

в приведенном выше примере я хотел очистить только текст Last Updated:04 Agoosto 2020. В своей попытке я могу очистить Last Updated, но не дату. Как этого добиться?

1 Ответ

2 голосов
/ 07 августа 2020
import bs4



content = '''<div class="_6ku5"><h4 class="_6ku6">Some Text Here.</h4><ul class="_6ku7"><li>Another Text Here</li><li>also text here</li><li>Be alert</li><li>Play safely</li></ul><br/><h4 class="_6ku6">score:</h4>43<h4 class="_6ku6">Last Updated:</h4>04 Agoosto 2020= date</div>'''


sp = bs4.BeautifulSoup(content, "html5lib")

last_updated = sp.find_all("h4", class_="_6ku6")[-1].get_text(strip=True)

date = sp.find('div', class_="_6ku5").findAll(text=True, recursive=False)[-1].split('=')[0]

print(last_updated + date)

Вывод:

Last Updated:04 Agoosto 2020
...