gpt4 book ai didi

Python BeautifulSoup 查找包含文本的元素

转载 作者:太空宇宙 更新时间:2023-11-04 00:51:51 26 4
gpt4 key购买 nike

<div class="info">
<h3> Height:
<span>1.1</span>
</h3>
</div>

<div class="info">
<h3> Number:
<span>111111111</span>
</h3>
</div>

这是网站的一部分。最终,我想提取 111111111。我知道我能做到 soup.find_all("div", { "class": "info"})获取两个 div 的列表;但是,我宁愿不必执行循环来检查它是否包含文本“数字”。

是否有更优雅的方法来提取“1111111”,以便它执行 soup.find_all("div", { "class": "info"}),但也使得它它必须包含“数字”?

我也试过 numberSoup = soup.find('h3', text='Number')但它返回 None

最佳答案

您可以编写自己的过滤函数,并将其作为函数find_all 的参数。

from bs4 import BeautifulSoup

def number_span(tag):
return tag.name=='span' and 'Number:' in tag.parent.contents[0]

soup = BeautifulSoup(html, 'html.parser')
tags = soup.find_all(number_span)

顺便说一句,你不能用 text 参数获取标签的原因是:text 参数帮助我们找到 .string 值等于它的值的标签。如果一个标签包含不止一件事,那么就不清楚 .string 应该指的是什么。所以 .string 被定义为 None

可以引用beautiful soup doc .

关于Python BeautifulSoup 查找包含文本的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36784097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com