首页 > 解决方案 > 使用 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 位?

谢谢!

标签: pythonbeautifulsoup

解决方案


<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

推荐阅读