Skip to content
Related Articles

Related Articles

Get Flight Status using Python
  • Last Updated : 29 Dec, 2020

Prerequisite Implementing Web Scraping in Python with BeautifulSoup

In this article, we are going to write a python script to get Flight Status.

Module needed:

  • bs4: Beautiful Soup(bs4) is a Python library for pulling data out of HTML and XML files. This module does not come built-in with Python. To install this type the below command in the terminal.
pip install bs4
  • Requests: Request allows you to send HTTP/1.1 requests extremely easily. This module also does not come built-in with Python. To install this type the below command in the terminal.
pip install requests

Approach:

  • Import module
  • Create a URL get function
  • Now merge the information into URL and pass the URL into the getdata() function and Convert that data into HTML code.
  • Now find the required tag from the HTML code and traverse the result

Implementation:



Python3




# import module
import requests
from bs4 import BeautifulSoup
  
# UDF for get HTML code
# from URL
  
  
def get_html(Airline_code, Flight_number, Date, Month, Year):
    def getdata(url):
        r = requests.get(url)
        return r.text
  
    # url
    url = "https://www.flightstats.com/v2/flight-tracker/"+Airline_code + \
        "/"+Flight_number+"?year="+Year+"&month="+Month+"&date="+Date
  
    # pass the url
    # into getdata function
    htmldata = getdata(url)
    soup = BeautifulSoup(htmldata, 'html.parser')
    return(soup)
  
# Get Flight number
# from Html code
  
  
def flight_no(soup):
    Flight_no = ""
  
    # Find div tag with
    # unique class name
    for i in soup.find("div", class_="ticket__FlightNumberContainer-s1rrbl5o-4 hgbvHg"):
        Flight_no = Flight_no + (i.get_text()) + " "
    return (Flight_no)
  
# Get Airport name
# from HTML code
  
  
def airport(soup):
    Airport_name = []
    # Find div tag with
    # unique class name
    for i in soup.find_all("div", class_="text-helper__TextHelper-s8bko4a-0 CPamx"):
        Airport_name.append(i.get_text())
    return (Airport_name)
  
# get status
# from HTML code
  
  
def status(soup, Airport_list):
    Time_status = []
    Airport_List = []
    Status_str = []
    Gate = []
    Gate_no = []
  
    # Find div tag with
    # unique class name
    # to get Gate number
    for data in soup.find_all("div", class_="ticket__TGBLabel-s1rrbl5o-15 gcbyEH text-helper__TextHelper-s8bko4a-0 dfeqpK"):
        Gate.append(data.get_text())
    for data in soup.find_all("div", class_="ticket__TGBValue-s1rrbl5o-16 icyRae text-helper__TextHelper-s8bko4a-0 cCfBRT"):
        Gate_no.append(data.get_text())
  
    # Get status from
    # html code
    for i in soup.find_all("div", class_="text-helper__TextHelper-s8bko4a-0 bcmzUJ"):
        Status_str.append(i.get_text())
    for i in soup.find_all("div", class_="text-helper__TextHelper-s8bko4a-0 cCfBRT"):
        Time_status.append(i.get_text())
  
    # traverse the Data
    # from scarping data
    for item in range(4):
        if item == 0:
            print(Airport_list[0])
        if item == 2:
            print("")
            print(Airport_list[1])
        print(Status_str[item] + " : " + Time_status[item])
        print(Gate[item] + " : " + Gate_no[item])
    for item in range(len(Gate)):
        print(Gate[item] + " : " + Gate_no[item])
  
  
# Driver code
if __name__ == '__main__':
    # Input Data from geek
    Airline_code = 'G8'
    Flight_number = '134'
    Date = '23'
    Month = '10'
    Year = '2020'
  
    # Calling the get_html
    # with argument
    # function calling
    soup = get_html(Airline_code, Flight_number, Date, Month, Year)
    print("Flight number : ", flight_no(soup))
    Airport_list = airport(soup)
    status(soup, Airport_list)

Output:

Flight number :  G8 134 GoAir 
Jay Prakash Narayan International Airport
Scheduled : 21:00 IST
Terminal : N/A
Estimated : 21:00 IST
Gate : N/A

Indira Gandhi International Airport
Scheduled : 22:40 IST
Terminal : T2
Estimated : 22:40 IST
Gate : 205
Terminal : N/A
Gate : N/A
Terminal : T2
Gate : 205

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :