2012-01-24 21 views
23

Z kodu poniżejCzy istnieje odpowiednik InnerText w BeautifulSoup/python?

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

mam następujący kod HTML:

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

Jak mogę uzyskać Some text here bez tagów? Czy istnieje odpowiednik InnerText w BeautifulSoup/python?

Odpowiedz

30

Wszystko czego potrzebujesz to:

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

Możesz użyć findAll(text=True), aby wyszukiwać tylko węzły tekstowe.

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

Można wyszukiwać <p> i uzyskać jego tekst:

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

Dzięki. Właściwie szukałem sposobu, aby to zrobić bez dodatkowego "find". W twoim scenariuszu mogę również użyć 'result.find ('p'). Contents [0]'. –

Powiązane problemy