我想从span标签获取文本但我有这样的问题。 我写了这个,
import bs4 as bs
import urllib.request
page = urllib.request.urlopen('http://www.accuweather.com/en/az/baku/27103/current-weather/27103').read()
soup = bs.BeautifulSoup(page, 'html.parser')
print(soup.find_all('li', class_='wind'))
然后它返回[<li class="wind"><strong>28 km/h</strong></li>]
但我希望得到“28公里/小时”
然后我尝试了
page = urllib.request.urlopen('http://www.accuweather.com/en/az/baku/27103/current-weather/27103').read()
soup = bs.BeautifulSoup(page, 'html.parser')
print(soup.find_all("span" , { "class" : "wind" }))
但它也没有用。请帮帮我。
答案 0 :(得分:2)
您需要使用.find()
而不是.find_all()
来获取单个元素并调用.get_text()
来获取所需元素的文本:
print(soup.find('li', class_='wind').get_text())
或者,您也可以使用.select_one()
并使用 CSS选择器找到相同的元素:
print(soup.select_one('li.wind').get_text())
作为旁注,请查看"AccuWeather API" - 这可能是更快,更简单,更合适的方式来获取所需数据。