예제 #1
0
        //public static string Convert(this Encoding sourceEncoding, Encoding targetEncoding, string value)
        //{
        //    string reEncodedString = null;
        //    byte[] sourceBytes = sourceEncoding.GetBytes(value);
        //    byte[] targetBytes = Encoding.Convert(sourceEncoding, targetEncoding, sourceBytes);
        //    reEncodedString = sourceEncoding.GetString(targetBytes);
        //    return reEncodedString;
        //}
        public void DownloadImage(BegemotProduct bproduct,  Uri imageUri = null)
        {
            PageLoader pageLoader = new PageLoader();

            string uri = null;

            if (imageUri == null)
            {
                uri = string.Format(ImageUrlFormat, bproduct.Article);
            }
            else
            {
                uri = imageUri.ToString();
            }

            string savePath = bproduct.GenerateImagePath();
            try
            {
                pageLoader.RequestImage(uri, savePath);
                bproduct.ImagePath = savePath;
            }
            catch (WebException we)
            {
                bproduct.SetNoImage();
            }
        }
예제 #2
0
        public void DownloadDescription(BegemotProduct product)
        {
            PageLoader pageLoader = new PageLoader();

            string uri = string.Format(DescriptionUrlFormat, product.Code);

            try
            {
                // uri = "http://krsk.24au.ru/2365348/";
                var response = pageLoader.RequestsHtml(uri, decompress: true);
                var doc = new HtmlDocument();
                doc.LoadHtml(response.Html);

                var titleHeader =
                       doc.DocumentNode.NodeByXpath("/html/body/table/tr/td/table[1]/tr/td/table/tr/td[4]/div[2]/h1");

                product.Title = titleHeader.InnerText.Trim();

                bool contains = doc.DocumentNode.InnerHtml.Contains("<b>ќписание:</b>");
                if (contains)
                {
                    var descHeader =
                        doc.DocumentNode.NodeByXpath(
                            "/html/body/table/tr/td/table[1]/tr/td/table/tr/td[4]/div[2]/div[2]/b");

                    var nodes = descHeader.ParentNode.ChildNodes;
                    var indexHeader = nodes.IndexOf(descHeader);
                    var descNode = nodes[indexHeader + 1];
                    var innerText = descNode.InnerText.Trim();
                    product.Descrption = innerText;

                }
                else
                {
                    product.SetNoDescrption();
                }
            }
            catch (WebException we)
            {
                product.SetNoDescrption();
            }
        }