我想提取 span 标签之间的数据。这是一个 html 代码示例:
<p>
<span class="html-italic">3-Acetyl-</span>
<span class="html-italic">(4-acetyl-5-(β</span>
"-"
<span class="html-italic">naphtyl)-4,5-dihydro-1,3,4-oxodiazol-2-yl)methoxy)-2H-chromen-2-one</span>
"("
<b>5b</b>
</p>
我需要一个全名:
3-Acetyl-4-acetyl-5-(β-naphtyl)-4,5-dihydro-1,3,4-oxodiazol-2-yl)methoxy)-2H-chromen-2-one
(没有 5b)。我不知道如何在第二个和第三个 span 标签之间提取“-”。此外,span 标签的总数可能会有所不同,'-' 可以位于任何 span 标签之间。我写的代码只给我:3-Acetyl-4-acetyl-5-(β。这是我的代码的一部分:
p = soup.find("p")
name = ""
for child in p.children:
if child.name == "span":
name += child.text
print name
非常感谢任何帮助!
最佳答案
你可以使用 CSS selectors .
>>> ''.join(i.text for i in soup.select('p > span'))
'3-Acetyl-(4-acetyl-5-(βnaphtyl)-4,5-dihydro-1,3,4-oxodiazol-2-yl)methoxy)-2H-chromen-2-one'
关于python - 使用 BeautifulSoup Python 在 span 标签之间提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26749567/