Advertisement
tokarevms

IATA Lib

Jul 26th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.36 KB | None | 0 0
  1. # coding: cp1251
  2.     # Скрипт для получения списка кодов IATA
  3. import requests
  4. from lxml import html
  5.  
  6. result = []    
  7.  
  8. for x in xrange(97, 123):   # Обход всех символов a-z
  9.     respond = requests.get('http://aeroportix.ru/kod-iata/' + chr(x))   # По каждому совершается запрос
  10.     parsed = html.fromstring(respond.text)
  11.     result += parsed.xpath(".//*[@id='block-system-main']/div/div/table/tbody/tr/td/div/span/a/text()")
  12. document = open('Codes.txt', 'w')   # Извлекаются коды существующих аэропортов и записываются в файл
  13. for a in result:
  14.     document.write(a.lower() + '\n')
  15. document.close()
  16.  
  17.         # Скрипт для формирования библиотеки соответствия кодов IATA аэропортов (города, страны включены в информацию)
  18. import requests
  19. from lxml import html
  20.  
  21. i = 0       # Переменная для отображения работы скрипта
  22. libdoc = open('Library.txt', 'w')       # Открываются файлы для чтения и записи
  23. coding = 'utf-8'        # Кодировка для вывода
  24. with open('Codes.txt', 'r') as coddoc:     
  25.     for line in coddoc.readlines():     # Обходятся строки файла кодов
  26.         respond = requests.get('http://aeroportix.ru/aeroport/' + line.rstrip())        # Формируется запрос к сайту
  27.         parsed = html.fromstring(respond.text)      # Преобразование ответа в DOM дерево
  28.         rescountry = parsed.xpath(".//*[@id='block-system-main']/div/div[1]/div/div[2]/div/p/text()")
  29.         rescity = parsed.xpath(".//*[@id='block-system-main']/div/div[1]/div/div[4]/div/p/text()")
  30.         resname = parsed.xpath(".//*[@id='block-system-main']/div/div[1]/div/div[5]/div/p/text()")
  31.         rescode = line.upper().rstrip()     # Извлекается информация по дереву и записывается в файл
  32.         libdoc.write('%-3s\t%-50s\t%-25s\t%-s\t\n' % (rescode, rescountry[0][2:].encode(coding), rescity[0][2:].encode(coding), resname[0]   [2:].encode(coding)))
  33.         i += 1
  34.         print i     # Каждый шаг выводится переменная для отслеживания работы скрипта
  35. libdoc.close()
  36. codedoc.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement