【问题标题】:Python BeautifulSoup get attribute values from any element containing an attributePython BeautifulSoup 从包含属性的任何元素中获取属性值
【发布时间】:2020-02-04 17:53:14
【问题描述】:

在 beautifulSoup 中,我可以按标签定位所有元素,即:

BeautifulSoup().find_all('img')

或者通过src属性,只要我还指定了一个属性值,即:

BeautifulSoup().find_all(attrs={"src": "some.domain.com/file."})

无论 src 属性值是什么,我如何定位所有具有 src 属性的元素?

【问题讨论】:

  • 你能提供一个html的例子吗?
  • 你有没有尝试过,做过什么研究?
  • 这实际上是 stackoverflow.com/q/8933863/11301900 的副本。看看这个答案:stackoverflow.com/a/45365599/11301900.
  • @AMC 不,不是。问题很明确。我在解释如果属性值已知,我可以定位它。我在问如何定位具有未知值的属性。您发布的问题中的任何答案都没有使用没有值的属性选择器。当问题不同而答案不存在时,这怎么会重复?
  • @PaulB 您发布的问题中的任何答案都没有使用没有值的属性选择器。我链接的答案不正是这样做的吗?

标签: python html beautifulsoup


【解决方案1】:

如果您有 bs4 4.7.1 或更高版本,则可以使用以下 css 选择器。

for item in soup.select('[src]'):
    print(item)

【讨论】:

  • 不会'这个目标 img 元素与 src 属性?正如我在描述中提到的,我想要任何具有 src 属性的元素
  • 我已将其删除。您现在可以试试并告诉我。
【解决方案2】:

这对你有用吗?

BeautifulSoup().find_all(attrs={"src": re.compile('*')})

【讨论】:

  • 是的。这可行,但如果可以避免,我更愿意避免使用正则表达式。谢谢。
猜你喜欢
  • 2018-11-05
  • 2017-10-04
  • 2021-09-09
  • 2016-09-19
  • 2012-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多