March 5, 2019

Runway length parser

Написал скрипт на питоне для быстрого парсинга сайта skyvector в поисках длин ВПП.
Пусть побудет здесь, вдруг еще пригодится.

import urllib2
import re
# Тут список ИКАО, в каждой строчке один аэропорт
f = open("1.txt", "r")
# Сюда будем писать результат в форме ИКАО=999m
f2 = open("2.txt","w")
lines = f.readlines()
for x in lines:
 # Цикл по строкам файла
 icao = x.strip()
 url = "https://skyvector.com/airport/"+icao
 text = ""
 # Скачиваем страничку с вебсайта
 try:
  text = urllib2.urlopen(url).read()
 except:
  text = ""
 maxrwylen = 0
 for rwy in re.findall('<tr><th>Dimensions:</th>(.+?)</tr>', text):
  # Цикл по блокам данных о ВПП (все подстроки между "<tr><th>Dimensions:</th>" и "</tr>")
  print icao+" "+rwy
  rwylen = 0
  try:
   # Получаем длину ВПП в футах (подстрока между ">" и "x")
   rwylen = int(re.search(">(.+?)x",rwy).group(1).strip())
  except:
   rwylen = 0
  if rwylen>maxrwylen:
   maxrwylen = rwylen
 # Переводим футы в метры
 maxm = int(round(maxrwylen*0.3048))
 # Выводим на экран и пишем в файл
 print icao+" max:",maxm
 f2.write("{}={}m\n".format(icao, maxm))
f.close()
f2.close()

No comments: