2017-01-20 5 views
0

bs4を使用してスクレイプしたデータを省略して苦労しています。スクラップしたデータのリスト内の各単語の最初の文字を選択してください。

私はからの出力を省略しようとしている:私は['SSW', 'SW', 'S', 'S', 'S']

に私の最初の計画を省略したい

['South South Westerly', 'South Westerly', 'Southerly', 'Southerly', 'Southerly'] 

だった...出力がリストされ

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'})] 

split()を使用して、すべてupper()を選択すると、マップを使用して各単語を繰り返して、最初の文字を選択しようとしましたが、私はevしか使用しませんでしたそれぞれの要素の最初の文字を取得します。 [S, S, S, S, S]

データが返されていると感じていますか?

すべてのポインタはすばらしいでしょう、ありがとう。最も単純な形式で

+0

可能な重複私は各単語の最初の文字を見つける?](http://stackoverflow.com/questions/5775719/how-do-i-find-the-first-letter-of-each-word) –

答えて

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'] 
関連する問題