擅长:python、mysql、java
<p>尝试使用<code>.find_all(text=True, recursive=False)</code>:</p>
<pre><code>from bs4 import BeautifulSoup
div_test="""
<html>
<div id="d1">
Text 1
</div>
<div id="d2">
Text 2
<a href="http://my.url/">a url</a>
Text 2 continue
</div>
<div id="d3">
Text 3
</div>
</html>
"""
soup = BeautifulSoup(div_test, 'lxml')
s = soup.find(id='d2').find_all(text=True, recursive=False)
print(s)
print([e.strip() for e in s]) #remove space
</code></pre>
<p>它将返回一个只有<code>text</code>的<code>list</code>:</p>
<pre><code>[u'\n Text 2\n ', u'\n Text 2 continue\n ']
[u'Text 2', u'Text 2 continue']
</code></pre>