private static IchibaItem IchibaItemFromXmlNode(HtmlAgilityPack.HtmlNode node) { IchibaItem resultItem = new IchibaItem(); var ichibaItemNode = node.GetElementByTagName("div"); resultItem.Id = ichibaItemNode.Id.Split('_').Last(); // Thumbnail { var img = ichibaItemNode.GetElementByClassName("thumbnail") .GetElementByTagName("div") .GetElementByTagName("a") .GetElementByTagName("img"); var url = img?.GetAttributeValue("src", ""); if (url != null) { resultItem.ThumbnailUrl = new Uri(url); } } // amazonLink + Title { var amazonNode = ichibaItemNode.GetElementByClassName("itemname") .GetElementByTagName("a"); var title = amazonNode.InnerText; var amazonLink = amazonNode.GetAttributeValue("href", ""); resultItem.AmazonItemLink = new Uri(amazonLink); resultItem.Title = System.Net.WebUtility.HtmlDecode(title); } // maker { var makerNode = ichibaItemNode.GetElementByClassName("maker"); var makerName = makerNode?.InnerText; resultItem.Maker = System.Net.WebUtility.HtmlDecode(makerName); } // price + discountText { var priceNode = ichibaItemNode.GetElementByClassName("price"); if (priceNode != null) { resultItem.Price = priceNode.InnerText; var discountTextNode = priceNode.GetElementByTagName("span"); if (discountTextNode != null) { resultItem.DiscountText = discountTextNode.InnerText; } } } { var releaseNode = ichibaItemNode.GetElementByClassName("release") ?.GetElementByTagName("span"); if (releaseNode != null) { resultItem.Reservation = new IchibaItemReservation() { ReleaseDate = releaseNode.InnerText }; } } // action buy click var actionNode = ichibaItemNode.GetElementByClassName("action"); if (actionNode != null) { IchibaItemSellBase sellInfo = null; if (resultItem.Reservation != null) { sellInfo = resultItem.Reservation; var reservationNode = actionNode.GetElementByClassName("reservation"); if (reservationNode != null) { resultItem.Reservation.ReservationActionText = reservationNode.InnerText; } var buyYesterdayNode = actionNode.GetElementByClassName("reservationYesterday"); if (buyYesterdayNode != null) { resultItem.Reservation.YesterdayReservationActionText = buyYesterdayNode.InnerText; } } else { sellInfo = resultItem.Sell = new IchibaItemSell(); var buyNode = actionNode.GetElementByClassName("buy"); if (buyNode != null) { resultItem.Sell.BuyActionText = buyNode.InnerText; } var buyYesterdayNode = actionNode.GetElementByClassName("buyYesterday"); if (buyYesterdayNode != null) { resultItem.Sell.YesterdayBuyActionText = buyYesterdayNode.InnerText; } } var clickNode = actionNode.GetElementByClassName("click"); if (clickNode != null) { sellInfo.ClickActionText = clickNode.InnerText; } var lastNode = actionNode.GetElementsByTagName("span").LastOrDefault(); if (lastNode != null && !lastNode.Attributes.Contains("class")) { sellInfo.ClickInThisContentText = lastNode.InnerText; } } { var goIchibaNode = ichibaItemNode.GetElementByClassName("goIchiba") ?.GetElementByTagName("a"); if (goIchibaNode != null) { var ichibaLink = goIchibaNode.GetAttributeValue("href", ""); resultItem.IchibaUrl = new Uri(ichibaLink); } } return(resultItem); }