我需要在python脚本中使用METAR天气信息。我发现http://pypi.python.org/pypi/metar/1.4.0这似乎对我目前所需要的metar有效。不过,我也需要使用存档的天气信息。
我找到了Navlost.eu,它似乎能很好地满足我的需要。例如,
http://www.navlost.eu/aero/metar/?icao=KBOS&dt0=2010-07-14+02%3A00%3A00&c=1&rt=metar
python元模块访问一个文本文件并解析它。如何以类似的方式解析此网页,以便仅获取本例中的“KBOS 140154Z 15006KT 8SM-RA OVC034 23/22 A2994”文本?
最佳答案
查看上述链接返回的rawHTML
,可以看到嵌套在<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
关于python - 用python解析METAR网页,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7376152/