2011-09-11 34 views
3

pythonスクリプトでMETAR気象情報を使用する必要があります。私はhttp://pypi.python.org/pypi/metar/1.4.0が現状のMETARに必要なもののように思えるように見えました。しかし、私はまた、アーカイブされた天気情報を使用する必要があります。PythonでMETAR Webページを解析する

私はNavlost.euを見つけました。これは私が必要とするもののためにうまくいくようです。たとえば、 http://www.navlost.eu/aero/metar/?icao=KBOS&dt0=2010-07-14+02%3A00%3A00&c=1&rt=metar

python METARモジュールは、テキストファイルにアクセスし、そのファイルを解析します。このWebページを同様の方法で解析すると、この例では「KBOS 140154Z 15006KT 8SM -RA OVC034 23/22 A2994」というテキストしか取得できません。

答えて

2

上記のリンクから返された生HTMLを見ると、あなたが<code>タグの間にネストされたMETARデータを参照することができます

<p><hr/><br/><code>KBOS 140154Z 15006KT 8SM -RA OVC034 23/22 A2994</code><br/><br/> 

だから、それを得るために、Pythonの正規表現を使用します。

import urllib2 
import re 

URL="http://www.navlost.eu/aero/metar/?icao=KBOS&dt0=2010-07-14+02%3A00%3A00&c=1&rt=metar" 
f = urllib2.urlopen(URL) 
data = f.read() 

r = re.compile('<code>(.*)</code>', re.I | re.S | re.M) 
print r.findall(data)[0] 

正規表現はre.compile行にあり、(.*)は括弧内のすべての文字に関心があることを意味します。関数r.findallは式に一致するすべての文字列を返し、[0]は最初の文字列を返します。

次が出力されます。

KBOS 140154Z 15006KT 8SM -RA OVC034 23/22 A2994 
関連する問題