13

我想做下面的代码,这是 BS 文档所说的,唯一的问题是“类”这个词不仅仅是一个词。它可以在 HTML 中找到,但它也是一个导致此代码抛出错误的 python 关键字。

那么我该如何做以下事情呢?

soup.findAll('ul', class="score")
4

3 回答 3

19

您的问题似乎是您希望find_all在汤中找到与您的字符串完全匹配的字符串。事实上

当您搜索与某个 CSS 类匹配的标签时,您将匹配其任何 CSS 类:

正如@alKid 所说,您可以正确搜索类标签。您也可以使用class_关键字 arg 进行搜索。

soup.find_all('ul', class_="score")
于 2013-11-14T05:46:58.637 回答
12

这是如何做到的:

soup.find_all('ul', {'class':"score"})
于 2013-11-14T03:37:49.760 回答
0

如果 OP 有兴趣finalScore通过ul您可以通过几行gazpacho来解决这个问题:

from gazpacho import Soup

html = """\
<div>
    <ul class="score header" id="400488971-linescoreHeader" style="display: block">
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li id="400488971-lshot"> </li>
      <li class="finalScore">T</li>
    </ul>
<div>
"""

soup = Soup(html)
soup.find("ul", {"class": "score"}).find("li", {"class": "finalScore"}).text

这将输出:

'T'
于 2020-10-09T23:02:34.820 回答