我一直在努力缩减使用bs4删除的一些数据。
我正在尝试缩写输出:
import urllib.request
from bs4 import BeautifulSoup
url = "http://www.bbc.co.uk/weather/en/2644037/?day1"
page = urllib.request.urlopen(url)
soup = BeautifulSoup(page, "html5lib")
weekWeather = soup.find('div', {'class':'daily-window'})
wD = [x.text for x in weekWeather.findAll('span', {'class':'description blq-hide'})]
输出是一个列表......
['South South Westerly', 'South Westerly', 'Southerly', 'Southerly', 'Southerly']
我想缩写为['SSW', 'SW', 'S', 'S', 'S']
我的第一个计划是使用split()
,然后选择所有upper()
,然后我尝试使用map迭代每个单词,并选择第一个字符,但我只收到第一个字母每个元素(即[S, S, S, S, S]
我感觉这是因为数据的返回方式?
任何指针都会很棒,谢谢。
答案 0 :(得分:0)
在最简单的形式中,您可以通过.split()
按空格分割并获取每个单词的第一个字符:
["".join([item[0] for item in x.text.split()])
for x in weekWeather.select('span.description.blq-hide')]
会返回:
['SSW', 'SW', 'S', 'S', 'S']