Ejemplo n.º 1
0
        public List <Celeb> InitCelebsList()
        {
            // Get all celebs list from imdb
            celebsList.Clear();
            HtmlWeb            webImdb = new HtmlWeb();
            HtmlDocument       docImdb = webImdb.Load(celebsListUrl);
            HtmlWeb            webImdCelebBiography = new HtmlWeb();
            HtmlNodeCollection nodes = docImdb.DocumentNode.SelectNodes("//div[@class='lister-item mode-detail']");

            foreach (HtmlNode node in nodes)
            {
                string fullName       = node.SelectNodes(".//h3[@class='lister-item-header']//a").First().InnerHtml.TrimStart().TrimEnd();
                char[] delimiterChars = { '|' };
                string title          = node.SelectNodes(".//p[@class='text-muted text-small']").First().InnerText.TrimStart().Split(delimiterChars)[0].TrimEnd();
                var    picture        = node.SelectNodes(".//div[@class='lister-item-image']//img//@src").First().Attributes.Where(i => i.Name == "src").FirstOrDefault().Value;
                string celebBioUrl    = node.SelectNodes(".//h3[@class='lister-item-header']//a//@href").First().Attributes.Where(i => i.Name == "href").FirstOrDefault().Value;
                celebBioUrl = "https://www.imdb.com/" + celebBioUrl;
                string birthDate = "unknown";

                Celeb celeb = new Celeb(fullName, birthDate, title, picture);
                celebsList.Add(celeb);

                // Optional:
                //to get birth Data from additional bio url for each celeb..
                //but it slows down the loading time needs another 100 web calls.
                //HtmlDocument docImdbCelebBiography = webImdCelebBio.Load(celebBiographyUrl);
                //birthDate = docImdbCelebBiography.DocumentNode.SelectNodes(".//div[@id='name-born-info']//time").First().Attributes.Where(i => i.Name == "datetime").FirstOrDefault().Value;
            }
            WriteDataToJsonFile();

            return(celebsList);
        }
Ejemplo n.º 2
0
 // Add new element to Celebs List
 public void AddCelebToList(Celeb celeb)
 {
     celebsList.Add(celeb);
     WriteDataToJsonFile();
 }