python - 根据标签、类和字符串内容提取html块
问题描述
我对 bf4 真的很陌生,我想从 html 页面获取特定内容。当我尝试以下代码时,我会得到许多具有相同标签和类的结果。所以我需要过滤更多。我感兴趣的块中有一个字符串内容。有没有办法另外按内容刮?任何贡献表示赞赏。
html_doc = requests.get('https://www.blockchain.com/bch/address/qqe2tae7hfga2zj5jj8mtjsgznjpy5rvyglew4cy8m')
soup = BeautifulSoup(html_doc.content, 'html.parser')
print(soup.find_all('span', class_='sc-1ryi78w-0 gCzMgE sc-16b9dsl-1 kUAhZx u3ufsr-0 fGQJzg'))
编辑:
我应该补充一点,内容如下所示。所以有一个字符串,我想为其提取值,但该值在下一个标签中。在这里,我想提取字符串 'Final Balance' 下的 3.79019103。
Total Sent
</span>
</div>
</div>
<div class="sc-8sty72-0 kcFwUU">
<span class="sc-1ryi78w-0 gCzMgE sc-16b9dsl-1 kUAhZx u3ufsr-0 fGQJzg" opacity="1">
13794.11698089 BCH
</span>
</div>
</div>
<div class="sc-1enh6xt-0 jqiNji">
<div class="sc-8sty72-0 kcFwUU">
<div>
<span class="sc-1ryi78w-0 gCzMgE sc-16b9dsl-1 kUAhZx sc-1n72lkw-0 lhmHll" opacity="1">
Final Balance
</span>
</div>
</div>
<div class="sc-8sty72-0 kcFwUU">
<span class="sc-1ryi78w-0 gCzMgE sc-16b9dsl-1 kUAhZx u3ufsr-0 fGQJzg" opacity="1">
3.79019103 BCH
</span>
</div>
</div>
</div>
</div>
</div>
解决方案
查找最终余额标签:
final_balance_tag = next(x for x in soup.find_all('span') if 'Final Balance' in x.text)
使用此标签,您可以直接跳转到下一个跨度标签。
final_balance_tag.findNext('span')
这使
<span class="sc-1ryi78w-0 gCzMgE sc-16b9dsl-1 kUAhZx u3ufsr-0 fGQJzg" opacity="1">
3.79019103 BCH
</span>
推荐阅读
- sql - sql查询不包括当前日期的数据
- python - Python 的海龟模块 - 我如何让海龟根据它下面的标记颜色做一个动作?
- python - 如何使用 for 循环将不同的变量分配给类对象?
- javascript - 如何在 nodejs 上使用 imap-simple 和 mailparser 按发件人过滤邮件?
- android - 为什么android studio模拟器不起作用?
- angular - Angular 11 没有运行 ngcc
- javascript - 用于复制文本原始数据的 Javascript 函数
- python-requests - Burpsuite 转发器和 python 请求的不同返回
- c - 这是一个正确的 C 程序吗?
- bash - 获取函数内的最后一个 echo 语句并将变量放入 bash