public IList<IVehicle> Scrape(IExtractionArguments args, HtmlDocument page) { IList<IVehicle> vehicles = new List<IVehicle>(); var nodes = page.DocumentNode.SelectNodes("//div[@class='box_item_detail section ']"); var gooNodes = page.DocumentNode.SelectNodes("//div[@class='box_item_detail section no_goo_area']"); if (nodes == null) nodes = gooNodes; else if (gooNodes != null) { foreach (var selectNode in gooNodes) { nodes.Add(selectNode); } } foreach (var node in nodes) { Vehicle vehicle = new Vehicle(); vehicle.Title = node.SelectNodes("div/div[@class='heading_inner']") .First() .InnerText.Trim() .Replace(" ", " ") .Replace("\t", string.Empty) .Replace("\n", string.Empty); vehicle.Make = args.Make; vehicle.Model = args.Model; vehicle.Milage = node.SelectNodes("div/div/table/tr/td[@class='w63']").First().InnerText; double price = 0; double.TryParse(node.SelectNodes("div/div/table/tr/td/div[@class='priceInfo']/p/em").First().InnerText, out price); vehicle.Price = price; var dirtyYear = node.SelectNodes("div/div/table/tr/td[@class='w66']")[0].InnerText; dirtyYear = dirtyYear.Substring(0, dirtyYear.IndexOf("(")); vehicle.Year = int.Parse(dirtyYear); vehicles.Add(vehicle); } return vehicles; }
public IList<IVehicle> Scrape(IExtractionArguments args, HtmlDocument page) { var vehicleList = new List<IVehicle>(); var searchResults = page.DocumentNode.SelectNodes("//div[@class='searchResult ']"); if (searchResults == null) return vehicleList; foreach (var searchResult in searchResults) { IVehicle vehicle = new Vehicle(); vehicle.Make = args.Make; vehicle.Model = args.Model; vehicle.Title = searchResult.SelectSingleNode(".//h2[@class='serpTitle']").InnerText.Trim(); vehicle.Price = GetVehiclePrice(searchResult); vehicle.Milage = GetMilage(searchResult); vehicle.Year = GetAge(searchResult); vehicleList.Add(vehicle); _log.DebugFormat("Added {0}", vehicle); } return vehicleList; }