在Python中查找span标记内的多个属性

RDP*_*DPD 7 python beautifulsoup

我希望从网站上获取两个值.它们存在于以下标记中:

<span class="sp starBig">4.1</span>
<span class="sp starGryB">2.9</span>
Run Code Online (Sandbox Code Playgroud)

我需要值sp starBig,sp starGryB.

我正在使用的findAll表达式是 -

soup.findAll('span', {'class': ['sp starGryB', 'sp starBig']}):
Run Code Online (Sandbox Code Playgroud)

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

fam*_*kin 10

根据文档,假设美丽的汤4,匹配多个CSS类与字符串'sp starGryB'是脆弱的,不应该做:

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

应该使用CSS选择器,如下所示:

soup.select('span.sp.starGryB')
# [<span class="sp starGryB">2.9</span>]
soup.select('span.starGryB.sp')
# [<span class="sp starGryB">2.9</span>]
Run Code Online (Sandbox Code Playgroud)

在你的情况下:

items = soup.select('span.sp.starGryB') + soup.select('span.sp.starBig')
Run Code Online (Sandbox Code Playgroud)

或更复杂的东西:

items = [i for s in ['span.sp.starGryB', 'span.sp.starBig'] for i in soup.select(s)]
Run Code Online (Sandbox Code Playgroud)