【问题标题】:Checking if both attribute and value exist using BeautifulSoup使用 BeautifulSoup 检查属性和值是否都存在
【发布时间】:2017-02-17 20:15:10
【问题描述】:

我正在使用 python 中的 beautifulSoup 在网页中阅读。 许多元素是跨度,但它们的类属性具有不同的值。例如

Value1 = property.findChild("span", {"class" : "search-result-Val1"}).text
Value2 = property.findChild("span", {"class" : "search-result-Val2"}).text 

问题是如果用户在保存他们的项目时没有输入 Val1 或 Val2 的值,它们将不会出现在搜索结果页面上,所以我需要检查是否存在 span 标签,带有属性“在我可以尝试提取其值之前,使用该属性的特定值。

我该怎么做? GetAttr() 方法没有帮助,因为它只是告诉我该属性是否存在,但我无法检查该属性的值,这是本例中的区别因素。

【问题讨论】:

  • 您能提供您要抓取的页面的链接吗?

标签: python beautifulsoup screen-scraping


【解决方案1】:

对于这个特定的实例,您正在寻找类属性。

在这种情况下,您可以执行property.findChild("span")["class"],然后检查它是否包含您想要的类之一。

【讨论】:

    【解决方案2】:

    使用list过滤器:

    如果您传入一个列表,Beautiful Soup 将允许与该列表中的 any 项进行字符串匹配。

    property.findChild("span", class_=["search-result-Val1","search-result-Val2"] )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-19
      • 1970-01-01
      • 2019-04-11
      • 2018-11-04
      • 2018-02-28
      • 1970-01-01
      相关资源
      最近更新 更多