python - 使用 beautifulsoup 缩小特定文本的范围
问题描述
我正在尝试从这里获取河流水位 https://flood-warning-information.service.gov.uk/station/8108
我正在使用这个脚本
import requests
from bs4 import BeautifulSoup
url = "https://flood-warning-information.service.gov.uk/station/8108"
r = requests.get(url)
soup = BeautifulSoup(r.content, "lxml")
g_data = soup.find_all("header", {"intro"})
print g_data[0].text
这给了我
约翰圣达灵顿的斯克恩河
2020 年 10 月 8 日星期四上午 10:30 的最新记录水平 0.72m。
这是花花公子,但我真正想要的只是关卡本身。
无论如何要进一步深入 0.72m 位?
谢谢!
解决方案
<strong>
您可以使用以下元素从元素内的第一个元素获取文本class="intro"
:
import requests
from bs4 import BeautifulSoup
url = 'https://flood-warning-information.service.gov.uk/station/8108'
soup = BeautifulSoup(requests.get(url).content, 'html.parser')
print(soup.select_one('.intro strong').text)
印刷:
0.72m
推荐阅读
- reactjs - 外部控制图
- tcp - QUIC/HTTP3 在网络切换时是否受益于 udp?
- javascript - 试图将 span 附加到列表 appendchild(span) 中它会引发错误?
- r - 在 Ggplot2 中仅设置某些刻度线
- python - Python中类和函数范围之间的行为差异
- python - 字符串变异练习的解法差异说明
- python - Bat文件手动工作,但不是来自python子进程调用
- android - 使用范围存储在 Android11 中配置 logback
- angular - 如何在 docker 容器中运行已编译的 SPA 静态文件以及 ASP.NET Core Web API 发布?
- android-source - 如何获取使用 soong (Android.bp) 构建的 android 模块的依赖项(直接和传递)