Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls |
                                                   SecurityProtocolType.Tls11 |
                                                   SecurityProtocolType.Tls12 |
                                                   SecurityProtocolType.Ssl3;

            var url = @"https://www.kellysubaru.com/used-inventory/index.htm";

            try
            {
                var web = new HtmlWeb();
                var doc = web.Load(url);       // Load

                var body_node = doc.GetBody(); // Get body

                // Get page cars nodes
                var page_cars = NodesUtils.GetSubNodesByClassName(body_node.ChildNodes,
                                                                  "item notshared green-vehicle inv-type-used");

                IEnumerable <CarInfo> cars_data = NodesToCarInos(page_cars);

                var car_data = cars_data.Skip(1).Take(1).FirstOrDefault();
                if (null != car_data)
                {
                    car_data.WriteToConsole();
                }
            } catch (Exception ex)
            {
                Console.WriteLine(String.Format("Error: {0}", ex.Message));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="nodes"></param>
        /// <returns></returns>
        private static IEnumerable <CarInfo> NodesToCarInos(IEnumerable <HtmlNode> nodes)
        {
            List <CarInfo> result = new List <CarInfo>();

            foreach (var car_item in nodes)
            {
                String vin   = String.Empty;
                String price = String.Empty;
                String url   = String.Empty;

                var found_nodes = NodesUtils.GetSubNodesByClassName(car_item.ChildNodes,
                                                                    "hproduct auto subaru");
                if (null != found_nodes)
                {
                    var node = found_nodes.FirstOrDefault();
                    if (null != node)
                    {
                        var attr = node.Attributes["data-vin"];
                        if (null != attr)
                        {
                            vin = attr.Value;
                        }
                    }
                }

                found_nodes = NodesUtils.GetSubNodesByClassName(car_item.ChildNodes,
                                                                "internetPrice final-price");

                if (null != found_nodes)
                {
                    var node = found_nodes.First();
                    if (null != node)
                    {
                        found_nodes = NodesUtils.GetSubNodesByClassName(node.ChildNodes, "value");
                        node        = found_nodes.FirstOrDefault();
                        if (null != node)
                        {
                            price = node.InnerText;
                        }
                    }
                }

                found_nodes = NodesUtils.GetSubNodesByClassName(car_item.ChildNodes, "photo thumb");
                if (null != found_nodes)
                {
                    var node = found_nodes.FirstOrDefault();
                    if (null != node)
                    {
                        var attr = node.Attributes["src"];
                        if (null != attr)
                        {
                            url = attr.Value;
                        }
                    }
                }

                result.Add(new CarInfo(vin, price, url));
            }

            return(result);
        }