gpt4 book ai didi

python - 在 Python 的 span 标签中查找多个属性

转载 作者:太空狗 更新时间:2023-10-29 21:28:47 27 4
gpt4 key购买 nike

我希望从网站上抓取两个值。它们存在于以下标签中:

<span class="sp starBig">4.1</span>
<span class="sp starGryB">2.9</span>

我需要值 sp starBig,sp starGryB。

我使用的 findAll 表达式是 -

soup.findAll('span', {'class': ['sp starGryB', 'sp starBig']}):

代码没有任何错误地执行,但没有显示结果。

最佳答案

根据 docs ,假设 Beautiful Soup 4,用 'sp starGryB' 这样的字符串匹配多个 CSS 类是脆弱的,不应该这样做:

soup.find_all('span', {'class': 'sp starGryB'})
# [<span class="sp starGryB">2.9</span>]
soup.find_all('span', {'class': 'starGryB sp'})
# []

CSS selectors应该改用,像这样:

soup.select('span.sp.starGryB')
# [<span class="sp starGryB">2.9</span>]
soup.select('span.starGryB.sp')
# [<span class="sp starGryB">2.9</span>]

在你的情况下:

items = soup.select('span.sp.starGryB') + soup.select('span.sp.starBig')

或者更复杂的东西,比如:

items = [i for s in ['span.sp.starGryB', 'span.sp.starBig'] for i in soup.select(s)]

关于python - 在 Python 的 span 标签中查找多个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29877663/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com