2012-01-24 12 views
23

Con il codice qui sottoEsiste un equivalente InnerText in BeautifulSoup/python?

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

ricevo il seguente codice HTML:

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

Come posso ottenere Some text here senza tag? Esiste un equivalente InnerText in BeautifulSoup/python?

risposta

30

Tutto ciò che serve è:

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

È possibile utilizzare findAll(text=True) per trovare solo nodi di testo.

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

È possibile cercare <p> e ottenere il suo testo:

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

Grazie. In realtà stavo cercando il modo di farlo senza ulteriori 'find'. Nel tuo scenario posso anche usare 'result.find ('p'). Contents [0]'. –