簡體   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