top of page

How to scrape flights data from Ryanair using the Minexa.ai extension

Ryanair publishes a public flight listing page that shows available routes, departure dates, origin and destination cities, IATA airport codes, one-way fares, and direct booking links. All of it is visible in the browser. None of it is easy to collect at scale without a tool built for the job.

This guide covers how to extract that data using Minexa.ai, a Chrome extension that detects page structure automatically and exports results to Excel, Google Sheets, or JSON without any code.

What the extracted data looks like

Each row in the output corresponds to one flight listing. Here is a sample of what Minexa.ai extracts from the Ryanair flights page:

[
  {
    "airport_code": "MAD",
    "airport_code_2": "IBZ",
    "booking_link": "/es/es/trip/flights/select?adults=1&teens=0&children=0&infants=0&dateOut=2026-04-14&isConnectedFlight=false&isReturn=false&discount=0&originIata=IBZ&destinationIata=MAD",
    "button_text": "Reservar vuelo",
    "departure_date": "mar 14 mar",
    "destination_city": "Madrid",
    "destination_city_2": "Ibiza",
    "flight_type": "ida",
    "price": "13,45 €"
  },
  {
    "airport_code": "ALC",
    "airport_code_2": "IBZ",
    "booking_link": "/es/es/trip/flights/select?adults=1&teens=0&children=0&infants=0&dateOut=2026-04-18&isConnectedFlight=false&isReturn=false&discount=0&originIata=IBZ&destinationIata=ALC",
    "button_text": "Reservar vuelo",
    "departure_date": "sáb 18 mar",
    "destination_city": "Alicante",
    "destination_city_2": "Ibiza",
    "flight_type": "ida",
    "price": "13,5 €"
  }
]

Field reference

airport_code captures the IATA code of the destination airport. In the sample above, MAD identifies Madrid Barajas and ALC identifies Alicante. This field is useful for grouping or filtering routes by destination airport programmatically.

airport_code_2 captures the IATA code of the origin airport. Combined with airport_code, these two fields give you the full route pair per listing without needing to parse any other field.

booking_link is a relative URL that encodes the full trip configuration: origin and destination IATA codes, departure date, passenger counts broken down by adult, teen, child, and infant, a connected flight flag, a return flag, and a discount parameter. Prepending ryanair.com to this path gives a directly usable booking URL.

departure_date surfaces a localized date string reflecting the page locale. On the Spanish-language version of the page, this appears as a day abbreviation followed by a numeric date and month name. The format is consistent across rows and can be parsed once you account for the locale.

destination_city and destination_city_2 capture the display names of the destination and origin cities respectively. These are the human-readable labels shown on the page, distinct from the IATA codes in airport_code and airport_code_2.

flight_type indicates whether the listing is a one-way or return fare. On the Spanish-language page this appears as "ida" for one-way. This field can be used to filter or segment the dataset by trip type.

price contains the lowest available fare for that route and date as a formatted string including the currency symbol. The locale-specific decimal separator is preserved as found on the page.

row_class_attribute distinguishes header rows from data rows. Rows with the class flights-list-big__row-header are column labels, not flight records. Filtering to rows where this field equals flights-list-big__row isolates the actual flight data.

Video walkthrough

Watch the full extraction from start to finish before going through the step-by-step screenshots below.

Step-by-step extraction walkthrough

Open the Minexa.ai home page and install the Chrome extension if you have not done so already.

Navigate to the Ryanair flights listing page at ryanair.com/flights/es/es. The page displays a sortable table of available routes with fares, dates, and airport codes.

Open the Minexa.ai extension from the Chrome toolbar. The extension detects the page and shows a confirmation prompt. Click the button to confirm you are on the right page.

Minexa.ai then checks the pagination setup for the page and shows you what it detected. Review the pagination options and click Continue to move forward.

Next, choose whether to scrape the list page only or to also follow each flight link and extract detail page data. For most flight tracking use cases, the list page contains everything you need.

Select simple scraping mode unless you need a custom interaction workflow. Simple mode handles the Ryanair flights table without any additional configuration.

Minexa.ai highlights the full data container on the page automatically. Confirm the selection to let the extension identify all data points within the flight listing table.

After the scraper is created, you can browse through all extracted columns using the next and previous navigation. All fields described in the field reference above will appear here.

Once the scraping job completes, your data appears in a table. You can export to Excel or JSON directly from this screen. You also have the option to connect to Google Sheets or set up a recurring schedule so the job runs automatically.

Scheduling and reuse

Once the scraper is trained, running it again on the same page type takes no additional setup. You can schedule it to run daily or weekly to track how fares and available routes change over time. Each run captures the current state of the listing, so you build up a historical record without any manual effort after the initial configuration.

This is particularly useful for fare monitoring, route availability tracking, or building datasets that reflect how Ryanair pricing shifts across dates and origin cities.

For more on scraping flight and travel data, see the related guide: Scraping Azul Fidelidade flight deals with the Minexa.ai extension.

Recent Posts

See All

Comments


Heading 2

bottom of page