Ejemplo n.º 1
0
        private void GetAllPostLink(InstagramProfile igProfile)
        {
            foreach (var i in Enumerable.Range(1, _scrollTimes))
            {
                Thread.Sleep(2000);
                ((IJavaScriptExecutor)Driver).ExecuteScript("window.scrollTo(0, document.body.scrollHeight - 150)");
            }



            var allLink    = Driver.FindElements(By.CssSelector("a"));
            var mediasLink = allLink.Where(a => a.GetAttribute("href").Contains("/p/")).Select(p => p.GetAttribute("href")).ToList();

            igProfile.Posts = new List <Post>();

            foreach (var media in mediasLink)
            {
                var igPost = new Post
                {
                    MediaURL = media
                };

                igProfile.Posts.Add(igPost);

                Console.WriteLine(media);
            }

            Thread.Sleep(1000);
        }
 public void RunV2(InstagramProfile ig)
 {
     //Driver.Navigate().GoToUrl(ig.URL);
     Driver.Url = ig.URL;
     Driver.Navigate();
     Thread.Sleep(1000);
     GetFollowerAndFollowingV2(ig);
     Thread.Sleep(1000);
 }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            try
            {
                var amyJson = File.ReadAllText("amyun.u.json");

                var igAmy = JsonConvert.DeserializeObject <InstagramProfile>(amyJson);


                var userLogin = new User {
                    Username = "", Password = ""
                };

                foreach (var following in igAmy.Followings)
                {
                    var fileName = string.Format("{0}\\{1}.json", igAmy.Name, following.Name);
                    if (File.Exists(fileName))
                    {
                        continue;
                    }

                    var instagramController = new InstagramController(userLogin, 0);

                    instagramController.Login();

                    var ig = new InstagramProfile(following.URL, following.Name);

                    instagramController.RunV2(ig);

                    var igJson = JsonConvert.SerializeObject(ig);

                    if (!Directory.Exists(igAmy.Name))
                    {
                        Directory.CreateDirectory(igAmy.Name);
                    }

                    File.WriteAllText(fileName, igJson, Encoding.UTF8);

                    instagramController.Close();
                }

                Console.WriteLine("Complete");
            }
            catch (Exception ex)
            {
                var errorMessage = string.Format("{0}{1}{2}", ex.Message, Environment.NewLine, ex.StackTrace);

                Console.WriteLine(errorMessage);

                File.AppendAllText("Error.txt", string.Format("{0}{1}", Environment.NewLine, errorMessage));
            }
        }
Ejemplo n.º 4
0
        private void GetAllPostDetail(InstagramProfile ig)
        {
            foreach (var post in ig.Posts)
            {
                Driver.Navigate().GoToUrl(post.MediaURL);

                GetImages(post);

                GetPictureTags(post);

                GetPostDate(post);

                GetCaption(post);

                LoadComments();

                GetComments(post);
            }
        }
        public async Task <InstagramProfile> GetProfile()
        {
            IInstaApi        api    = (IInstaApi)HttpContext.Current.Session["api"];
            InstagramProfile result = null;

            if (api == null || !api.IsUserAuthenticated)
            {
                return(null);
            }

            var user = await api.GetCurrentUserAsync();

            result = new InstagramProfile
            {
                FullName        = user.Value.FullName,
                Username        = user.Value.UserName,
                ProfileImageUri = user.Value.ProfilePicture
            };



            return(result);
        }
Ejemplo n.º 6
0
        private void GetFollowerAndFollowing(InstagramProfile igProfile)
        {
            try
            {
                Thread.Sleep(2000);
                var selectedAllA = Driver.FindElements(By.CssSelector("a"));
                var followersTag = selectedAllA.Where(a => a.GetAttribute("href").Contains("/followers")).FirstOrDefault();

                var followerCount = followersTag.FindElement(By.TagName("span")).GetAttribute("title");
                Console.WriteLine("Follower: {0}", followerCount);

                igProfile.FollowerCount = int.Parse(followerCount.Replace(",", ""));


                #region Follower
                //followersTag.Click();
                //Thread.Sleep(2000);

                ////.isgrP
                //((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('.isgrP').scrollTo(0, 100)");
                //Thread.Sleep(500);
                //((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('.isgrP').scrollTo(0, 200)");
                //Thread.Sleep(500);
                //((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('.isgrP').scrollTo(0, 300)");
                //Thread.Sleep(500);
                //((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('.isgrP').scrollTo(0, 400)");
                //Thread.Sleep(500);
                //((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('.isgrP').scrollTo(0, 500)");
                //Thread.Sleep(500);
                //((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('.isgrP').scrollTo(0, 600)");
                //Thread.Sleep(500);
                //((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('.isgrP').scrollTo(0, 700)");
                //Thread.Sleep(500);

                //long flagFollower = 0;
                //for (;;)
                //{
                //    ((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('.isgrP').scrollTo(0, document.querySelector('.isgrP').scrollHeight )");
                //    Thread.Sleep(100);
                //    var currentHeight = (long)((IJavaScriptExecutor)Driver).ExecuteScript("return document.querySelector('.isgrP').scrollHeight;");

                //    if (flagFollower == currentHeight)
                //    {
                //        break;
                //    }
                //    else
                //    {
                //        flagFollower = currentHeight;
                //    }

                //    Thread.Sleep(1000);
                //}


                //var followersLinks = Driver.FindElements(By.CssSelector("li div a"));
                //var followers = followersLinks.Where(f => f.GetAttribute("title") != "").ToList();

                //var followersCount = followers.Count();
                //igProfile.FollowingCount = followersCount;
                //Console.WriteLine("Follower: {0}", followersCount);


                //foreach (var follower in followers)
                //{
                //    var igFollower = new Follower
                //    {
                //        Name = follower.GetAttribute("title"),
                //        URL = follower.GetAttribute("href")
                //    };

                //    igProfile.Followers.Add(igFollower);

                //    Console.WriteLine("{0} - {1}", follower.GetAttribute("title"), follower.GetAttribute("href"));
                //}

                //Thread.Sleep(2000);

                //var buttonCloseFollower = Driver.FindElement(By.CssSelector(".WaOAr > button"));
                //buttonCloseFollower.Click();

                //Thread.Sleep(2000);
                #endregion


                #region Following
                var followingTag   = selectedAllA.Where(a => a.GetAttribute("href").Contains("/following")).FirstOrDefault();
                var followingCount = followersTag.FindElement(By.TagName("span")).Text;

                igProfile.FollowingCount = int.Parse(followingCount.Replace(",", ""));

                if (igProfile.FollowingCount > 1000)
                {
                    return;
                }

                followingTag.Click();
                Thread.Sleep(2000);

                //.isgrP
                ((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('.isgrP').scrollTo(0, 100)");
                Thread.Sleep(500);
                ((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('.isgrP').scrollTo(0, 200)");
                Thread.Sleep(500);
                ((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('.isgrP').scrollTo(0, 300)");
                Thread.Sleep(500);
                ((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('.isgrP').scrollTo(0, 400)");
                Thread.Sleep(500);
                ((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('.isgrP').scrollTo(0, 500)");
                Thread.Sleep(500);
                ((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('.isgrP').scrollTo(0, 600)");
                Thread.Sleep(500);
                ((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('.isgrP').scrollTo(0, 700)");
                Thread.Sleep(500);

                long flagFollowing = 0;
                for (;;)
                {
                    ((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('.isgrP').scrollTo(0, document.querySelector('.isgrP').scrollHeight )");
                    Thread.Sleep(100);
                    var currentHeight = (long)((IJavaScriptExecutor)Driver).ExecuteScript("return document.querySelector('.isgrP').scrollHeight;");

                    if (flagFollowing == currentHeight)
                    {
                        break;
                    }
                    else
                    {
                        flagFollowing = currentHeight;
                    }

                    Thread.Sleep(500);
                }


                var followingsLinks = Driver.FindElements(By.CssSelector("li div a"));
                var followings      = followingsLinks.Where(f => f.GetAttribute("title") != "").ToList();

                var followingsCount = followings.Count();
                //igProfile.FollowingCount = followingsCount;
                Console.WriteLine("Following: {0}", followingsCount);


                foreach (var following in followings)
                {
                    var igFollowing = new Following
                    {
                        Name = following.GetAttribute("title"),
                        URL  = following.GetAttribute("href")
                    };

                    igProfile.Followings.Add(igFollowing);

                    Console.WriteLine("{0} - {1}", following.GetAttribute("title"), following.GetAttribute("href"));
                }

                Thread.Sleep(2000);

                var buttonCloseFollowing = Driver.FindElement(By.CssSelector(".WaOAr > button"));
                buttonCloseFollowing.Click();

                Thread.Sleep(2000);
                #endregion
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 7
0
 public CSVExport(InstagramProfile instagramProfile)
 {
     this._instagramProfile = instagramProfile;
 }