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

标签 python beautifulsoup

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

相关文章:

python - 是否可以对 numexpr 中的多个轴求和?

python - python-在默认程序中打开wav文件(Linux)

python - 使用 Beautiful Soup findall 提取单引号之间的文本

python - 如何使用 beautifulsoup 在另一个 div 元素中划分元素?

webkit - 自动浏览复杂网页

python - 是否可以使用 Python/BeautifulSoup 从一大块 HTML 中去除除 anchor /链接之外的所有标签?

python - 打印乐谱 - Pygame

python - 为连续 Action 空间实现强化(Humanoid-v2)?

python - 取消存储在网络驱动器上的大型对象

python - Beautiful Soup 的网页抓取问题