/// <summary> /// Get data's song /// </summary> /// <param name="input"></param> /// <param name="typeSong"></param> /// <param name="id"></param> /// <returns></returns> Song GetASong(string input, TypeSong typeSong, string id) { Song song = new Song(); song.ID = @"/Image/ID Chart/_" + id + ".png"; // Get id song song.TypeOfSong = typeSong; // Get urlSong - singer name - artist - image singer string pattern = @"""http://www.nhaccuatui(.*?)alt"; Match data = Manage.GetFirstValueRegex(input, pattern, RegexOptions.Singleline); // Get url image singer and urlSong pattern = @"http://(.*?)"""; MatchCollection links = Manage.GetDataWithRegex(data.Value, pattern); song.UrlSong = links[0].Value.Substring(0, links[0].Length - 1).Replace("http://www.nhaccuatui.com/", ""); // UrlSong song.ImageSinger = links[1].Value.Substring(0, links[1].Length - 1); // ImageSinger // Get Artist and Singer name string[] value = GetSingerNameAndArtist(data.Value); song.SongName = value[0]; // Add song name song.SingerName = value[1]; // Add singer name // Get Highest Position pattern = @"></span>(.*?)</a>"; data = Manage.GetFirstValueRegex(input, pattern); song.HighestPosition = data.Value.Replace("></span>", "").Replace("</a>", ""); return(song); }
/// <summary> /// Start Crawling 20 song of a chart /// </summary> /// <param name="inputLink"></param> /// <param name="lSong"></param> /// <param name="typeSong"></param> /// <returns></returns> List <Song> CrawlAChart(string inputLink, List <Song> lSong, TypeSong typeSong) { string html = Manage.CrawlData(inputLink); string pattern = @"<div class=""box_info_field"">(.*?)class=""last_weeks_position"; var data = Manage.GetDataWithRegex(html, pattern, RegexOptions.Singleline); foreach (Match item in data) { Song song = GetASong(item.Value, typeSong, (lSong.Count + 1).ToString()); lSong.Add(song); } return(lSong); }