Skip to main content
 首页 » 编程设计

python之使用 BeautifulSoup Python 在 span 标签之间提取数据

2025年05月04日15exmyth

我想提取 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'