Ejemplo n.º 1
0
        private SasFlightData ParseFlightNode(HtmlNode node)
        {
            var result = new SasFlightData();

            try
            {
                // Get Airports
                var airports = node.SelectSingleNode("following-sibling::tr[1]").SelectNodes(".//td/span[@class='route']/span[@class='location']");

                result.Departure = airports.First().SelectSingleNode(".//*[@class='airport']").InnerText;
                result.Arrival   = airports.Last().SelectSingleNode(".//*[@class='airport']").InnerText;

                result.Connection = airports[1].InnerText.Contains(result.Arrival) ? "" : airports[1].InnerText;

                // Get Time -- I am ignoring the +1 days for now
                var time = node.SelectNodes(".//td[@class='time']/*[@class='time']");
                result.DepTime = ParseTime(time[0].InnerText);
                result.ArrTime = ParseTime(time[1].InnerText);

                // Get fare Info
                result.Fares = GetAvailableFares(node);
            }
            catch (Exception e)
            {
                System.Console.WriteLine("Error Parsing flight Data: {0}", e.Message);
            }
            return(result);
        }
Ejemplo n.º 2
0
        private IEnumerable <SasFlightData> ParseFlightsDataFromPage(HtmlDocument page, string table)
        {
            var flightsData = new List <SasFlightData>();

            var flightNodes = page.DocumentNode.SelectNodes($"//div[contains(@class, '{table}')]//tr[contains (@id, 'idLine')]");

            foreach (var node in flightNodes)
            {
                SasFlightData flight = ParseFlightNode(node);
                flightsData.Add(flight);
            }
            return(flightsData);
        }