Showing posts with label data design pattern. Show all posts
Showing posts with label data design pattern. Show all posts

Extraction pipeline from flight radar web site

If you're looking to use Python with Selenium to scrape flight data from a website that displays live flight information (such as FlightRadar24), here's a general approach. Keep in mind that you should always check a website's terms of service and robots.txt to ensure that you're allowed to scrape data.


### Requirements:

- Install Selenium using pip:

 ```bash

 pip install selenium

 ```

- Download a WebDriver (e.g., ChromeDriver) and place it in your PATH or provide its location in the code.

- If scraping frequently or on a large scale, consider using an official API if available.


### Example: Scraping Flight Data from a Public Website Using Selenium


```python

from selenium import webdriver

from selenium.webdriver.common.by import By

import time


# Set up the WebDriver (adjust the path if needed)

driver = webdriver.Chrome(executable_path="/path/to/chromedriver")


# Open the flight radar website

url = "https://www.flightradar24.com/"

driver.get(url)


# Let the page load (you might need to adjust the time)

time.sleep(10)


# Extract flight information from the page

# This example assumes there's a table of flights with unique identifiers, modify selectors as needed


flights = driver.find_elements(By.CSS_SELECTOR, '.list-row') # Modify to fit the website's structure


flight_data = []


for flight in flights:

  flight_info = {}

   

  try:

    # Modify selectors according to the site's structure

    flight_info['flight_number'] = flight.find_element(By.CSS_SELECTOR, '.flight-number').text

    flight_info['departure'] = flight.find_element(By.CSS_SELECTOR, '.departure').text

    flight_info['arrival'] = flight.find_element(By.CSS_SELECTOR, '.arrival').text

    flight_info['status'] = flight.find_element(By.CSS_SELECTOR, '.status').text

    flight_data.append(flight_info)

  except Exception as e:

    print(f"Error extracting data for a flight: {e}")


# Print the extracted flight data

for flight in flight_data:

  print(flight)


# Close the driver

driver.quit()

```


### Key Points:

- **Selectors**: Use browser developer tools to inspect the webpage and identify the correct CSS selectors for the flight data you want to scrape.

- **Delay/Timeout**: Some websites may use dynamic content loading, so adding `time.sleep()` or WebDriver waits for elements to load can help ensure accurate data scraping.

  

### Example Output:

```python

{

  "flight_number": "AA123",

  "departure": "JFK",

  "arrival": "LAX",

  "status": "On Time"

}

```


If you have a specific site or need further customization, let me know!

From Blogger iPhone client