<p>您的主要问题是如何从<code><p></code>中提取文本,它不包含<code><span></code>。在</p>
<p><a href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#navigablestring" rel="nofollow noreferrer"><em>NavigableString</em></a><em>一个字符串对应于标记中的一位文本。因此,如果文本是<code>NavigableString</code>的实例,则可以提取文本</p>
<pre><code>from bs4 import BeautifulSoup,NavigableString
html = "your example"
soup = BeautifulSoup(html,"lxml")
for e in soup.find("p"):
print(e,type(e))
#Name: <class 'bs4.element.NavigableString'>
#<strong><span itemprop="name">Alisson Ramses Becker</span></strong> <class 'bs4.element.Tag'>
</code></pre>
<p>真实代码:</p>
^{pr2}$
<p>等于</p>
<pre><code>[element for result in resultset for element in result if isinstance(element, NavigableString)]
</code></pre>
<p>我的完整测试代码</p>
<pre><code>from bs4 import BeautifulSoup,NavigableString
html = """
<div class="row-table details -bp30">
<div class="col">
<p>Name: <strong><span itemprop="name">Alisson Ramses Becker</span></strong></p> <p>Date of birth:<span itemprop="birthDate">02/10/1992</span></p> <p>Place of birth:<span itemprop="nationality"> Brazil</span></p>
</div>
<div class="col">
<p>Club: <span itemprop="affiliation">Liverpool</span></p><p>Squad: 13</p> <p>Position: Goal Keeper</p>
</div>
</div>
"""
soup = BeautifulSoup(html,"lxml")
resultset = soup.find_all("p")
fr = [element for result in resultset for element in result if isinstance(element, NavigableString)]
spanset = [e.text for e in soup.find_all("span",{"itemprop":True})]
setA = ["".join(z) for z in zip(fr,spanset)]
final = setA + fr[len(spanset):]
print(final)
</code></pre>
<p>输出</p>
<pre><code>['Name: Alisson Ramses Becker', 'Date of birth:02/10/1992', 'Place of birth: Brazil', 'Club: Liverpool', 'Squad: 13', 'Position: Goal Keeper']
</code></pre>