Exemplo n.º 1
0
 /// <summary>
 /// Uzupełnienie komentarza danymi zalet
 /// </summary>
 /// <param name="comment"></param>
 /// <param name="node"></param>
 private void fillAdvantages(CommentDb comment, HtmlAgilityPack.HtmlNode node)
 {
     HtmlAgilityPack.HtmlNodeCollection bodyNodes = node.SelectNodes(containerPath + "ul[@class=\"pros-n-cons\"]//li[1]");
     if (bodyNodes != null)
     {
         foreach (HtmlAgilityPack.HtmlNode commentNode in bodyNodes)
         {
             comment.Advantages += commentNode.InnerText;
         }
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// Uzupełnia pole autor
 /// </summary>
 /// <param name="comment"></param>
 /// <param name="node"></param>
 private void fillAuthor(CommentDb comment, HtmlNode node)
 {
     HtmlAgilityPack.HtmlNodeCollection bodyNodes = node.SelectNodes(containerPath+"span[@class=\"author\"]");//div//span[@class=\"review-time\"]//time");
     if (bodyNodes != null)
     {
         foreach (HtmlAgilityPack.HtmlNode commentNode in bodyNodes)
         {
             comment.Author = commentNode.InnerText;
         }
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// Uzupełnienie komentarza danymi zalet
 /// </summary>
 /// <param name="comment"></param>
 /// <param name="node"></param>
 private void fillAdvantages(CommentDb comment, HtmlAgilityPack.HtmlNode node)
 {
     HtmlAgilityPack.HtmlNodeCollection bodyNodes = node.SelectNodes(".//span[@class=\"pros-cell\"]//li");//("//*[@id=\"body\"]/div[2]/div/div/div[2]/div[3]/div[2]/ol/li/div/div[1]/p");// //body//div[@id='body']class=\"product - review - body\"");
     if (bodyNodes != null)
     {
         foreach (HtmlAgilityPack.HtmlNode commentNode in bodyNodes)
         {
             comment.Advantages += commentNode.InnerText;
         }
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// Pobiera z node do comment użyteczność komentarza
        /// </summary>
        /// <param name="comment"></param>
        /// <param name="node"></param>
        private void fillUsability(CommentDb comment, HtmlNode node)
        {
            HtmlAgilityPack.HtmlNodeCollection bodyNodes = node.SelectNodes(".//span[@class=\"btn gray link\"]");
            int votesToYes = 0;
            if (bodyNodes != null)
            {
                foreach (HtmlAgilityPack.HtmlNode commentNode in bodyNodes)
                {
                    if (commentNode.InnerHtml.Contains("ico-hand-down"))
                    {
                    string textToParse = commentNode.InnerHtml;
                    textToParse = textToParse.Replace("<i class=\"ico-hand-down\">&nbsp;</i>Pomocna (", "");
                    textToParse = textToParse.Replace(")", "");
                    votesToYes =  Convert.ToInt32(textToParse);
                    comment.Usability = votesToYes;

                    }
                    else
                    {

                    string textToParse = commentNode.InnerHtml;
                    textToParse = textToParse.Replace("<i class=\"ico-hand-up\">\n                      &nbsp;</i>(", "");
                    textToParse = textToParse.Replace(")", "");
                    comment.UsabilityVotes = votesToYes + Convert.ToInt32(textToParse);

                    }

                }
            }
            bodyNodes = node.SelectNodes("./span[@class=\"btn gray link\"][2]");
            if (bodyNodes != null)
            {
                foreach (HtmlAgilityPack.HtmlNode commentNode in bodyNodes)
                {
                    string ll = commentNode.InnerHtml;
                    //comment.Usability = Convert.ToInt32(commentNode.InnerText);
                }
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Uzupełnienie komentarza danymi ilości gwiazdek 
        /// </summary>
        /// <param name="comment"></param>
        /// <param name="node"></param>
        private void fillStar(CommentDb comment, HtmlAgilityPack.HtmlNode node)
        {
            HtmlAgilityPack.HtmlNodeCollection bodyNodes = node.SelectNodes(".//span[@class=\"review-score-count\"]");//("//*[@id=\"body\"]/div[2]/div/div/div[2]/div[3]/div[2]/ol/li/div/div[1]/p");// //body//div[@id='body']class=\"product - review - body\"");
            if (bodyNodes != null)
            {
                foreach (HtmlAgilityPack.HtmlNode commentNode in bodyNodes)
                {
                    string score = commentNode.InnerText;
                    string[] scoreCount = score.Split('/');
                    comment.Stars = Convert.ToDouble(scoreCount[0]);
                }

            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// Uzupełnia czy dany komentarz rekomenduje
        /// </summary>
        /// <param name="comment"></param>
        /// <param name="node"></param>
        private void fillRecommend(CommentDb comment, HtmlNode node)
        {
            HtmlAgilityPack.HtmlNodeCollection bodyNodes = node.SelectNodes(".//em[@class=\"product-recommended\"]");
            if (bodyNodes != null)
            {
                foreach (HtmlAgilityPack.HtmlNode commentNode in bodyNodes)
                {
                    if (commentNode.InnerText.Contains("Polecam"))
                    {
                        comment.Recommend = true;
                    }
                    else
                    {
                        comment.Recommend = false;
                    }
                }

            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// Uzupełnienie komentarza danymi komentarza
        /// </summary>
        /// <param name="product"></param>
        void fillComments(Product product)
        {
            HtmlAgilityPack.HtmlNodeCollection bodyNodes = htmlDoc.DocumentNode.SelectNodes("//ul[@class=\"opinion-list\"]/li");
            if (bodyNodes != null)
            {
                int dd = 0;
                foreach (HtmlAgilityPack.HtmlNode node in bodyNodes)
                {
                    if (!isCommentExistInProduct(product, node))
                    {

                        CommentDb comment = new CommentDb();
                        comment.PortalName = "Skapiec";
                        fillComment(comment, node);
                        product.Comments.Add(comment);

                    }
                    dd++;
                }
            }
        }
Exemplo n.º 8
0
 /// <summary>
 /// Uzupełnia czas wystawienia komentarza
 /// </summary>
 /// <param name="comment"></param>
 /// <param name="node"></param>
 private void fillCommentDate(CommentDb comment, HtmlNode node)
 {
     HtmlAgilityPack.HtmlNodeCollection bodyNodes = node.SelectNodes(containerPath+"span[@class=\"date\"]");
     if (bodyNodes != null)
     {
         foreach (HtmlAgilityPack.HtmlNode commentNode in bodyNodes)
         {
                     comment.Date = DateTime.Parse(commentNode.InnerHtml);
             break;
         }
     }
 }
Exemplo n.º 9
0
 /// <summary>
 /// Uzupełnia tekst komentarza
 /// </summary>
 /// <param name="comment"></param>
 /// <param name="node"></param>
 private void fillCommentContent(CommentDb comment, HtmlAgilityPack.HtmlNode node)
 {
     HtmlNodeCollection bodyNodes = node.SelectNodes(".//div[@class=\"opinion-container\"]//p");//("//*[@id=\"body\"]/div[2]/div/div/div[2]/div[3]/div[2]/ol/li/div/div[1]/p");// //body//div[@id='body']class=\"product - review - body\"");
     if (bodyNodes != null)
     {
         foreach (HtmlAgilityPack.HtmlNode commentNode in bodyNodes)
         {
             comment.Comment += commentNode.InnerText;
         }
     }
 }
Exemplo n.º 10
0
 /// <summary>
 /// Wypełnia pojedyńczy komentarz comment z danego node
 /// </summary>
 /// <param name="comment"></param>
 /// <param name="node"></param>
 private void fillComment(CommentDb comment, HtmlAgilityPack.HtmlNode node)
 {
     fillCommentContent(comment, node);
     fillStar(comment, node);
     fillAdvantages(comment, node);
     fillDisadvantages(comment, node);
     fillAuthor(comment, node);
     fillCommentDate(comment, node);
     fillRecommend(comment, node);
     fillUsability(comment, node);
 }
Exemplo n.º 11
0
 /// <summary>
 /// Pobiera z node do comment użyteczność komentarza
 /// </summary>
 /// <param name="comment"></param>
 /// <param name="node"></param>
 private void fillUsability(CommentDb comment, HtmlNode node)
 {
     HtmlAgilityPack.HtmlNodeCollection bodyNodes = node.SelectNodes(".//span[@class=\"product-review-usefulness-stats\"]//span");
     if (bodyNodes != null)
     {
         foreach (HtmlAgilityPack.HtmlNode commentNode in bodyNodes)
         {
             if (!commentNode.Attributes[0].Value.Contains("percent"))
             {
                 if (commentNode.Attributes[0].Value.Contains("-yes-"))
                 {
                     comment.Usability = Convert.ToInt32(commentNode.InnerText);
                 }
                 else
                 {
                     comment.UsabilityVotes = Convert.ToInt32(commentNode.InnerText);
                 }
             }
         }
     }
 }
Exemplo n.º 12
0
        /// <summary>
        /// Uzupełnienie komentarza danymi komentarza
        /// </summary>
        /// <param name="product"></param>
        void fillComments(Product product)
        {
            HtmlAgilityPack.HtmlNodeCollection bodyNodes = htmlDoc.DocumentNode.SelectNodes("//ol[@class=\"product-reviews js_product-reviews js_reviews-hook\"]/li");//("//*[@id=\"body\"]/div[2]/div/div/div[2]/div[3]/div[2]/ol/li/div/div[1]/p");// //body//div[@id='body']class=\"product - review - body\"");
            if (bodyNodes != null)
            {
                foreach (HtmlAgilityPack.HtmlNode node in bodyNodes)
                {
                    if (!isCommentExistInProduct(product, node))
                    {

                        CommentDb comment = new CommentDb();
                        comment.PortalName = "Ceneo";
                        fillComment(comment, node);
                        product.Comments.Add(comment);
                    }
                }
            }
        }
Exemplo n.º 13
0
        /// <summary>
        /// Uzupełnia czas wystawienia komentarza
        /// </summary>
        /// <param name="comment"></param>
        /// <param name="node"></param>
        private void fillCommentDate(CommentDb comment, HtmlNode node)
        {
            HtmlAgilityPack.HtmlNodeCollection bodyNodes = node.SelectNodes(".//div[@class=\"content-wide-col\"]//div//span[@class=\"review-time\"]//time");
            if (bodyNodes != null)
            {
                foreach (HtmlAgilityPack.HtmlNode commentNode in bodyNodes)
                {
                    foreach (HtmlAgilityPack.HtmlAttribute attribut in commentNode.Attributes)
                    {

                        if (attribut.Name == "datetime")
                        {
                            comment.Date = DateTime.Parse(attribut.Value);
                        }
                    }
                    break;
                }
            }
        }