web-dev-qa-db-fra.com

Existe-t-il un équivalent InnerText dans BeautifulSoup?

Avec le code ci-dessous:

soup = BeautifulSoup(page.read(), fromEncoding="utf-8")
result = soup.find('div', {'class' :'flagPageTitle'})

J'obtiens le HTML suivant:

<div id="ctl00_ContentPlaceHolder1_Item65404" class="flagPageTitle" style=" ">
<span></span><p>Some text here</p>
</div>

Comment puis-je avoir Some text here sans balises? Existe-t-il un équivalent InnerText dans BeautifulSoup?

31
LA_

Tout ce dont tu as besoin c'est:

result = soup.find('div', {'class' :'flagPageTitle'}).text
35
Phil Cooper

Vous pouvez utiliser findAll(text=True) pour rechercher uniquement les nœuds de texte.

result = u''.join(result.findAll(text=True))
3
voithos

Vous pouvez rechercher <p> et obtenir son texte:

soup = BeautifulSoup.BeautifulSoup(page.read(), fromEncoding="utf-8")
result = soup.find('div', {'class': 'flagPageTitle'})
result = result.find('p').text
2
Rob Wouters