根据docs,假设Beautiful Soup 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'})
# []
应该使用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>]
在您的情况下:
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)]