2012-01-24 15 views
23

Con el código de abajo¿Existe un equivalente de InnerText en BeautifulSoup/python?

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

me sale el siguiente HTML:

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

¿Cómo se puede conseguir que Some text here sin ninguna etiqueta? ¿Hay un equivalente de InnerText en BeautifulSoup/python?

Respuesta

30

Todo lo que necesita es:

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

Puede usar findAll(text=True) para encontrar solo nodos de texto.

result = u''.join(result.findAll(text=True)) 
2

Puede buscar <p> y obtener su texto:

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

Gracias. En realidad, estaba buscando la forma de hacerlo sin 'encontrar' adicional. En su escenario también puedo usar 'result.find ('p'). Contents [0]'. –

Cuestiones relacionadas