Actor picture

Ryanair Scraper

tugkan/ryanair-scraper

Scrape flights from Ryanair. Crawl and extract flights, prices, availability, and more. Creates a Ryanair API to let you scrape based on round trip, one way trip, and passenger management (adults, teens, children, infants) options.

Free trial for 7 days. Then $5/month.
Author's avatarTu臒kan Cengiz
  • Modified
  • Used by5 users
  • Used21 times
Actor picture
Ryanair Scraper
Free trial for 7 days. Then $5/month.

Ryanair scraper

Since Ryanair doesn't provide an good API, this actor should help you to retrieve data from it.

The Ryanair data scraper supports the following features:

  • Scrape round trip - you can scrape a complete round trip with departure and return dates.
  • Scrape one way trip - you can scrape an one way trip with just providing the departure date
  • Scrape with multiple people options - You can scrape Ryanair with Adults, Teens, Children and Infants options

Bugs, fixes, updates and changelog

This scraper is under active development. If you have any feature requests you can create an issue from here.

Input Parameters

The input of this scraper should be JSON containing. Required fields are:

Field Type Description
mode String Mode for the actor. It can be either ROUND for Round trip or ONEWAY for One way trips.
origin String 3-letter origin airport code. Ex: VIE
destination String 3-letter destination airport code. Ex: VIE
departureDate String Date for departure. Should be in the format of YYYY-MM-DD. Ex: 2021-02-21
departureDate String Date for return. It is required for Round trips. Should be in the format of YYYY-MM-DD. Ex: 2021-02-21
adults Integer Number of adults that will be included on the flight. Minimum number is 1.
teens Integer (optional) Number of teens (12-15 years old) that will be included on the flight.
children Integer (optional) Number of children (2-11 years old) that will be included on the flight.
infants Integer (optional) (optional) Number of teens (Under 2 years old) that will be included on the flight.
maxItems Integer (optional) You can limit scraped products. Default is Infinite.
proxy Object Proxy configuration
requestExtension JSON (optional) This object is an extension that can be applied to @apify/http-request package. It is extending the options of the request. Must be handle in care and should be handle only for advanced users
This solution requires the use of Proxy servers, either your own proxy servers or you can use Apify Proxy.

Compute Unit Consumption

The actor optimized to run in a very fast manner and scrape the flights in the most performant way. Therefore, it forefronts all flight result requests. If actor doesn't block very often it'll scrape 10 flights in 3 seconds with ~0.005-0.01 compute units.

Ryanair Scraper Input example

{
  "type":"ROUND",
  "origin": "VIE",
  "destination": "BCN",
  "departureTime": "2021-05-02",
  "returnTime":"2021-05-09",
  "adults": 4,
  "children": 3,
  "infants": 2,
  "teens": 1,
  "requestExtension":{
    "timeoutSecs": 100
  }
}


During the Run

During the run, the actor will output messages letting you know what is going on. When items are loaded from the page, you should see a message about this event with a loaded item count.

If you provide incorrect input to the actor, it will immediately stop with failure state and output an explanation of what is wrong.

Ryanair Export

During the run, the actor stores results into a dataset. Each item is a separate item in the dataset.

You can manage the results in any languague (Python, PHP, Node JS/NPM). See the FAQ or our API reference to learn more about getting results from this Ryanair actor.

Scraped Ryanair Flights

The structure of each item in Ryanair flights looks like this:


[{
  "Origin": "VIE",
  "Destination": "BCN",
  "Flight duration": "02:20",
  "Flight number": "FR 7350",
  "Price": 19.79,
  "Time departure": "2021-05-02T16:55:00.000",
  "Time arrival": "2021-05-02T19:15:00.000",
  "key": "FR~7350~ ~~VIE~05/02/2021 16:55~BCN~05/02/2021 19:15~~",
  "scrapedAt": "2021-03-16T14:56:12.589Z",
  "regularFare": {
    "fareKey": "M4QWIFT5CMI6W554NIEL57IV6W6IKYDXA4HYK5TOZ3XDXKE5ZIEA2SAQMZI2ZHAVJRZE6PNUMMZ7KMWOLDIQQQ2HHNXOWJLJHJDQHLHLCGLC7XXCR37MU4LSLJKSBC3IISWCP5UWXAKWP2URYKOW6SL6RD5PP5C6G2LVCIRMU52U5OPUZ566RWCNU6MZGWKZO3STLR4N5MEEY",
    "fareClass": "W",
    "fares": [
      {
        "type": "ADT",
        "amount": 19.79,
        "count": 1,
        "hasDiscount": true,
        "publishedFare": 19.92,
        "discountInPercent": 10,
        "hasPromoDiscount": false,
        "discountAmount": 0.13,
        "hasBogof": false
      }
    ]
  },
  "operatedBy": "Buzz"
},
{
  "Origin": "BCN",
  "Destination": "VIE",
  "Flight duration": "02:20",
  "Flight number": "FR 7351",
  "Price": 14.44,
  "Time departure": "2021-05-07T19:25:00.000",
  "Time arrival": "2021-05-07T21:45:00.000",
  "key": "FR~7351~ ~~BCN~05/07/2021 19:25~VIE~05/07/2021 21:45~~",
  "scrapedAt": "2021-03-16T14:56:12.589Z",
  "regularFare": {
    "fareKey": "PAZI5RTI7Q6XPJWZ7NWTM2L6ST4EGT5VMEUFJ6XELKMBYO6E32W5J5N7O4Q5CLXR5CGRECNSKTZTI4RKRXUINENX2PFLTWHHXJLAH7T6GXNF4TXMHSLS4XQPUMFFXA2R4HAIMVIEEALOODFNPIWICPXWWWM4NH3WFFECKOB6BG3EM5EO2FZRAG5I74AY26PWUQSTRWRZSY3TS",
    "fareClass": "T",
    "fares": [
      {
        "type": "ADT",
        "amount": 14.44,
        "count": 1,
        "hasDiscount": true,
        "publishedFare": 14.63,
        "discountInPercent": 15,
        "hasPromoDiscount": false,
        "discountAmount": 0.19,
        "hasBogof": false
      }
    ]
  },
  "operatedBy": "Lauda Europe"
},
{
  "Origin": "BCN",
  "Destination": "VIE",
  "Flight duration": "02:20",
  "Flight number": "FR 7351",
  "Price": 25.19,
  "Time departure": "2021-05-09T19:50:00.000",
  "Time arrival": "2021-05-09T22:10:00.000",
  "key": "FR~7351~ ~~BCN~05/09/2021 19:50~VIE~05/09/2021 22:10~~",
  "scrapedAt": "2021-03-16T14:56:12.589Z",
  "regularFare": {
    "fareKey": "5DK4JGBZGI3LGJEY7PIPEHFS6AQV5IRPZTGV23N5AMBWJS4ZR22QAPTVTCGN24WMRSPLJGWCHJGIFLZQRXINUUEMCZX4Z5UPWN3RSKZ3R24BNFBGZIKWCFZWXI7IFPO3QDXJPS65E5E4I73IQHMLKGVT7PQ76AJUUPEK33SNLF5NNIMK3M5QCPFUJN3XP6KYFPJX3SC5IYATO",
    "fareClass": "A",
    "fares": [
      {
        "type": "ADT",
        "amount": 25.19,
        "count": 1,
        "hasDiscount": true,
        "publishedFare": 25.32,
        "discountInPercent": 10,
        "hasPromoDiscount": false,
        "discountAmount": 0.13,
        "hasBogof": false
      }
    ]
  },
  "operatedBy": "Buzz"
}]