如何从跨度 class bs4 内的 b 标签获取文本
how to get text from b tag inside a span class bs4
my code till now
from bs4 import BeautifulSoup as bs
import requests,time
url = "https://forecast.weather.gov/MapClick.php?lat=37.8615&lon=-87.0611"
response = requests.get(url)
soup = bs(response.content,'lxml')
data2 = soup.find('span',{"class":"smallTxt"})
print(data2)
输出结果是 BRIDESHEAD REVISITED by Evelyn Waugh
使用你的代码我无法得到 BRIDESHEAD REVISITED
你可以尝试做这样的事情,它不是健壮的,但它可能会工作。
我定义了一个字典,并为每个键获取了它的值。
为了简化解决方案,我删除了每个键的冒号。
该格式不允许在同一行中迭代和获取每个 key-value,因此我定义了键及其值(空),并在下一轮插入它
result = {}
for i,v in enumerate(data2):
if i % 2 == 0:
key = v.get_text().split(':')[0]
result[key] = ''
else:
result[key] = v
输出:
{'Lat': '37.74°N', 'Lon': '87.17°W', 'Elev': '407ft.'}
my code till now
from bs4 import BeautifulSoup as bs
import requests,time
url = "https://forecast.weather.gov/MapClick.php?lat=37.8615&lon=-87.0611"
response = requests.get(url)
soup = bs(response.content,'lxml')
data2 = soup.find('span',{"class":"smallTxt"})
print(data2)
输出结果是 BRIDESHEAD REVISITED by Evelyn Waugh
使用你的代码我无法得到 BRIDESHEAD REVISITED
你可以尝试做这样的事情,它不是健壮的,但它可能会工作。
我定义了一个字典,并为每个键获取了它的值。
为了简化解决方案,我删除了每个键的冒号。
该格式不允许在同一行中迭代和获取每个 key-value,因此我定义了键及其值(空),并在下一轮插入它
result = {}
for i,v in enumerate(data2):
if i % 2 == 0:
key = v.get_text().split(':')[0]
result[key] = ''
else:
result[key] = v
输出:
{'Lat': '37.74°N', 'Lon': '87.17°W', 'Elev': '407ft.'}