Как пропустить текст из определенного тега? - PullRequest
0 голосов
/ 03 июня 2019

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

Дерево выглядит так:

<div class="desc"><h3 class="text-15 margin-bottom-10">Some desc:</h3>Some 
title <br/>
- text <br/>
- text<br/>
<br/>
text <br/>
<br/>
<br/>
text <br/>
@ <br/>
<br/>
text <span class="some_class">TEXT WHICH I DONT WANT</span> <br/>
<br/>
text <br/>
text <br/>
text </div>

Так что теперь я получаю:

desc = source.find('div', class_="desc").text 

и получаюполный текст с пролетом.Я пытаюсь использовать декомпозировать (), text = True, рекурсивный = False, но не работает.У кого-нибудь есть идеи, как это решить?

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Найдите тег span и разложите.

from bs4 import BeautifulSoup

data='''<div class="desc"><h3 class="text-15 margin-bottom-10">Some desc:</h3>Some 
title <br/>
- text <br/>
- text<br/>
<br/>
text <br/>
<br/>
<br/>
text <br/>
@ <br/>
<br/>
text <span class="some_class">TEXT WHICH I DONT WANT</span> <br/>
<br/>
text <br/>
text <br/>
text </div>'''
soup=BeautifulSoup(data,'html.parser')
item=soup.find('div', class_='desc').find('span')
item.decompose()
newitem=soup.find('div', class_='desc')
print(newitem.text)

Вывод:

Some desc:Some 
title 
- text 
- text

text 


text 
@ 

text  

text 
text 
text 
0 голосов
/ 03 июня 2019

.extract() должен выполнить трюк:

html = '''<div class="desc"><h3 class="text-15 margin-bottom-10">Some desc:</h3>Some 
title <br/>
- text <br/>
- text<br/>
<br/>
text <br/>
<br/>
<br/>
text <br/>
@ <br/>
<br/>
text <span class="some_class">TEXT WHICH I DONT WANT</span> <br/>
<br/>
text <br/>
text <br/>
text </div>'''

import bs4

soup = bs4.BeautifulSoup(html, 'html.parser')

soup.find('span').extract()
desc = soup.find('div', class_="desc").text 

Выход:

print (desc)
Some desc:Some 
title 
- text 
- text

text 


text 
@ 

text  

text 
text 
text 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...