<p>如果元素只包含<em>文本,请使用<a href="http://www.crummy.com/software/BeautifulSoup/bs4/doc/#string" rel="nofollow">^{<cd1>} attribute</a>:</p>
<pre><code>headline = soup.find(class_='cd__headline-text')
print(headline.string)
</code></pre>
<p>如果包含其他标记,则可以获取当前元素中包含的所有文本,或者只获取当前元素中的特定文本。在</p>
<p><a href="http://www.crummy.com/software/BeautifulSoup/bs4/doc/#get-text" rel="nofollow">^{<cd2>} function</a>将递归并收集元素和子元素中的所有字符串,将它们与您选择的字符串连接起来(默认为空字符串),并使用或不使用空格剥离。在</p>
<p>要只获取特定的字符串,可以遍历<a href="http://www.crummy.com/software/BeautifulSoup/bs4/doc/#strings-and-stripped-strings" rel="nofollow">^{<cd3>} or ^{<cd4>} generators</a>,或者使用<a href="http://www.crummy.com/software/BeautifulSoup/bs4/doc/#contents-and-children" rel="nofollow">element contents</a>访问所有包含的元素,然后选择<code>NavigableString</code>类型的实例。在</p>
<p>示例演示:</p>
^{pr2}$
<p>并添加了一个附加元素:</p>
<pre><code>>>> markup = '<span class="cd__headline-text">Is this model <em>too thin</em> for Yves Saint Laurent? </span>'
>>> soup = BeautifulSoup(markup)
>>> headline = soup.find(class_='cd__headline-text')
>>> headline.string is None
True
>>> print list(headline.strings)
[u'Is this model ', u'too thin', u' for Yves Saint Laurent? ']
>>> print list(headline.stripped_strings)
[u'Is this model', u'too thin', u'for Yves Saint Laurent?']
>>> print headline.get_text()
Is this model too thin for Yves Saint Laurent?
>>> print headline.get_text(' - ', strip=True)
Is this model - too thin - for Yves Saint Laurent?
>>> headline.contents
[u'Is this model ', <em>too thin</em>, u' for Yves Saint Laurent? ']
>>> from bs4 import NavigableString
>>> [el for el in headline.children if isinstance(el, NavigableString)]
[u'Is this model ', u' for Yves Saint Laurent? ']
</code></pre>