【问题标题】:How to limit the result of select tag in beautifulsoup?如何限制beautifulsoup中选择标签的结果?
【发布时间】:2015-08-16 21:58:11
【问题描述】:

例如,我有这个:

result = soup.select('div#test > div.filters > span.text')

我想将上述列表的结果限制为 10 项。

如果是find_all(),可以使用limit 参数,但select() 呢?

【问题讨论】:

    标签: python html beautifulsoup html-parsing


    【解决方案1】:

    select() 没有 limit 参数,但您可以切片结果集:

    soup.select('div#test > div.filters > span.text')[:10]
    

    【讨论】:

    • 啊,好的。你能告诉我如何获取 span 元素中的文本吗?我知道我可以做 result[0].text 但我希望它直接返回文本。
    • @RaghavSharma 通常的方法是使用 .text 属性,如您所示。此外,如果您需要为每个匹配选择器的元素添加文本,您可以使用列表推导:[item.text for item in result]
    【解决方案2】:

    现在绝对有一个 limit 参数。

    limit argument:

    这就像 SQL 中的 LIMIT 关键字一样工作。它告诉美丽的汤 找到一定数量后停止收集结果。

    适用于find_allselect 方法。

    例如,

    result = soup.select('div#test > div.filters > span.text', limit = 10)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 2022-01-08
      • 2019-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多