繁体   English   中英

Python BeautifulSoup findAll 通过“class”属性

[英]Python BeautifulSoup findAll by "class" attribute

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

那么我该怎么做呢?

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

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

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

您可以像@alKid 所说的那样正确搜索类标签。 您还可以使用class_关键字 arg 进行搜索。

soup.find_all('ul', class_="score")

这是如何做到的:

soup.find_all('ul', {'class':"score"})

如果 OP 对通过ul获得finalScore感兴趣,您可以使用几行finalScore来解决这个问题:

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'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM