【问题标题】:Can you search by classname in beautiful soup?你能在美汤中按类名搜索吗?
【发布时间】:2014-12-30 19:06:32
【问题描述】:

在 BeautifulSoup 中,您可以使用 soup.find_all 进行搜索。例如,我使用

搜索了一个页面
soup.find_all("tr", "cat-list-row1")

显然,这带来了名称为 cat-list-row1 的每个 tr 类。我想知道是否可以在整个页面中搜索任何名为“cat-list-row1”的类,而不是将其限制为元素为“tr”的类。

【问题讨论】:

标签: python beautifulsoup


【解决方案1】:

Multiple ways:

  • 使用class_ 参数(class 不能使用,它是 Python 中的保留关键字):

    soup.find_all(class_="cat-list-row1")
    
  • 使用attrs 字典

    soup.find_all(attrs={"class": "cat-list-row1"})
    
  • 使用CSS selector:

    soup.select('.cat-list-row1')
    

请注意,BeautifulSoup 应用“多值属性”概念可以轻松处理多个类:

请记住,单个标签的“类”可以有多个值 属性。当您搜索与某个 CSS 类匹配的标签时, 你正在匹配它的任何 CSS 类。

【讨论】:

  • 如果页面上有多个没有“tr”元素的“cat-list-row1”类名怎么办?有没有办法只搜索“cat-list-row1”?
  • @Scott 请查看更新和相应的documentation page。应该把事情弄清楚。
  • 感谢大家。在您的帮助下,我能够完成它。
猜你喜欢
  • 2018-03-12
  • 2018-06-04
  • 1970-01-01
  • 1970-01-01
  • 2012-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多