예제 #1
0
 private void btn_LIS_Groups_GetGroups_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         LinkedInScraper objLinkedInScraper      = new LinkedInScraper();
         Thread          thrThreadStartGetGroups = new Thread(objLinkedInScraper.ThreadStartGetGroups);
         thrThreadStartGetGroups.Start();
     }
     catch (Exception ex)
     {
     }
 }
        private void btn_LinkedinScraper_Start_Click(object sender, RoutedEventArgs e)
        {
            #region Settings
            try
            {
                if (chk_LinkedinScraper_ScraperInputs.IsChecked == true || chk_LIScraper_PremiumOption.IsChecked == true || chk_Scraper_LIScraper_Keyword_Title.IsChecked == true || chk_LinkedinScraper_Groups.IsChecked == true || chk_LIScraper_Industry_Relationship_Language.IsChecked == true || chk_LinkedinScraper_SearchByUrl.IsChecked == true)
                {
                    if (chk_LinkedinScraper_ScraperInputs.IsChecked == true)
                    {
                        GlobalsScraper.chkScraperInput = true;
                    }
                    if (chk_LIScraper_PremiumOption.IsChecked == true)
                    {
                        GlobalsScraper.chkPremiumOptions = true;
                    }
                    if (chk_Scraper_LIScraper_Keyword_Title.IsChecked == true)
                    {
                        GlobalsScraper.chkKeyword_Title = true;
                    }
                    if (chk_LinkedinScraper_Groups.IsChecked == true)
                    {
                        GlobalsScraper.chkGroups = true;
                    }
                    if (chk_LIScraper_Industry_Relationship_Language.IsChecked == true)
                    {
                        GlobalsScraper.chkIndustry_Relationship_Language = true;
                    }
                    if (chk_LinkedinScraper_SearchByUrl.IsChecked == true)
                    {
                        GlobalsScraper.chkSearchByUrl = true;
                    }
                }
                else
                {
                    GlobusLogHelper.log.Info("Please check atleast one of the checkboxes.");
                    MessageBox.Show("Please check atleast one of the checkboxes.");
                    return;
                }

                if (string.IsNullOrEmpty(txt_LinkedinScraper_MinDelay.Text) && string.IsNullOrEmpty(txt_LinkedinScraper_MaxDelay.Text))
                {
                    GlobusLogHelper.log.Info("Delay field cann't be empty.");
                    return;
                }
                else
                {
                    GlobalsScraper.txtMinDelay = Convert.ToInt32(txt_LinkedinScraper_MinDelay.Text.ToString());
                    GlobalsScraper.txtMaxDelay = Convert.ToInt32(txt_LinkedinScraper_MaxDelay.Text.ToString());
                }
            }
            catch (Exception ex)
            {
            }
            #endregion

            try
            {
                Scraper.LinkedInScraper objLinkedInScraper = new LinkedInScraper();
                Thread thrStartLinkedInScraper             = new Thread(objLinkedInScraper.ThreadStartLinkedInScraper);
                thrStartLinkedInScraper.Start();
            }
            catch (Exception ex)
            {
            }
        }
        private void GetEmployeeDataFromCompanyURL(ref GlobusHttpHelper HttpHelper, List <string> lstCompanyUrls)
        {
            try
            {
                if (!GlobalsScraper.isSearchByCompanyNamesToGetEmailId)
                {
                    foreach (string item in lstCompanyUrls)
                    {
                        try
                        {
                            GlobusLogHelper.log.Info("[ " + DateTime.Now + " ] => [ Starting Parsing With UserName : "******" ]");
                            //Log("Url >>> " + item);
                            string compCode = Regex.Split(item, "company/")[1];
                            compCode = compCode.Split('?')[0];
                            string EmployeeUrl = "https://www.linkedin.com/vsearch/p?keywords=" + SearchCriteria.Keyword + "&openAdvancedForm=true&locationType=" + SearchCriteria.Country + "&countryCode=" + SearchCriteria.Country + "&f_CC=" + compCode + "&rsid=&orig=ADVS";

                            string LinkPagesourceCompEmp = HttpHelper.getHtmlfromUrl1(new Uri(EmployeeUrl));

                            try
                            {
                                int      pagenumber    = 0;
                                string   strPageNumber = string.Empty;
                                string[] Arr12         = Regex.Split(LinkPagesourceCompEmp, "<p class=\"summary\">");

                                if (Arr12.Count() == 1)
                                {
                                    Arr12 = Regex.Split(LinkPagesourceCompEmp, "formattedResultCount");
                                }

                                foreach (string item1 in Arr12)
                                {
                                    try
                                    {
                                        if (!item1.Contains("<!DOCTYPE"))
                                        {
                                            if (item1.Contains("<strong>"))
                                            {
                                                try
                                                {
                                                    //":"15,439","i18n_survey_feedback_thanks":
                                                    string pageNO = Regex.Split(item1, "i18n_survey")[0].Replace(":", string.Empty).Replace(",", string.Empty).Replace("\"", string.Empty);

                                                    string[] arrPageNO = Regex.Split(pageNO, "[^0-9]");

                                                    foreach (string item2 in arrPageNO)
                                                    {
                                                        try
                                                        {
                                                            if (!string.IsNullOrEmpty(item2))
                                                            {
                                                                strPageNumber = item2;
                                                            }
                                                        }
                                                        catch
                                                        {
                                                        }
                                                    }
                                                }
                                                catch
                                                {
                                                }
                                            }
                                        }
                                    }
                                    catch
                                    {
                                    }
                                }



                                try
                                {
                                    strPageNumber = strPageNumber.Replace(".", string.Empty);
                                    if (strPageNumber != string.Empty || strPageNumber == "0")
                                    {
                                        GlobusLogHelper.log.Info("[ " + DateTime.Now + " ] => [ Total Results found: " + strPageNumber + " ]");
                                    }
                                    pagenumber = int.Parse(strPageNumber);
                                }
                                catch (Exception)
                                {
                                }

                                pagenumber = (pagenumber / 10) + 1;

                                LinkedInScraper obj_LinkedInScraper = new LinkedInScraper();

                                EmployeeUrl = EmployeeUrl + "##CompanyEmployeeScraper";

                                obj_LinkedInScraper.StartCompanyEmployeeScraperWithPagination(ref HttpHelper, EmployeeUrl, pagenumber);
                            }
                            catch
                            { }
                        }
                        catch
                        { }
                    }
                }

                #region for kishore's requirement
                if (GlobalsScraper.isSearchByCompanyNamesToGetEmailId)
                {
                    foreach (string item in lstCompanyUrls)
                    {
                        try
                        {
                            string compCode = "";
                            GlobusLogHelper.log.Info("[ " + DateTime.Now + " ] => [ Starting Parsing With UserName : "******" ]");
                            // string compCode = Regex.Split(item, "company/")[1];
                            // compCode = compCode.Split('?')[0];

                            string   compName = item.Replace(" ", "+");
                            string   CompUrl  = "https://www.linkedin.com/vsearch/c?type=companies&keywords=" + compName;
                            string   source   = HttpHelper.getHtmlfromUrl1(new Uri(CompUrl));
                            string[] arr      = Regex.Split(source, "fmt_industry");
                            string   url      = "";
                            if (arr.Length > 1)
                            {
                                url      = Utils.getBetween(arr[1], "link_biz_overview_", "\",\"");
                                url      = Utils.getBetween(url + "###", "\":\"/", "###");
                                compCode = Utils.getBetween(url, "company/", "?");
                            }
                            url    = "https://www.linkedin.com/" + url;
                            source = HttpHelper.getHtmlfromUrl1(new Uri(url));

                            string EmployeeUrl           = "https://www.linkedin.com/vsearch/p?keywords=" + SearchCriteria.Keyword + "&openAdvancedForm=true&locationType=" + SearchCriteria.Country + "&countryCode=" + SearchCriteria.Country + "&f_CC=" + compCode + "&rsid=&orig=ADVS";
                            string LinkPagesourceCompEmp = HttpHelper.getHtmlfromUrl1(new Uri(EmployeeUrl));

                            try
                            {
                                int      pagenumber    = 0;
                                string   strPageNumber = string.Empty;
                                string[] Arr12         = Regex.Split(LinkPagesourceCompEmp, "<p class=\"summary\">");

                                if (Arr12.Count() == 1)
                                {
                                    Arr12 = Regex.Split(LinkPagesourceCompEmp, "formattedResultCount");
                                }

                                foreach (string item1 in Arr12)
                                {
                                    try
                                    {
                                        if (!item1.Contains("<!DOCTYPE"))
                                        {
                                            if (item1.Contains("<strong>"))
                                            {
                                                try
                                                {
                                                    //":"15,439","i18n_survey_feedback_thanks":
                                                    string pageNO = Regex.Split(item1, "i18n_survey")[0].Replace(":", string.Empty).Replace(",", string.Empty).Replace("\"", string.Empty);

                                                    string[] arrPageNO = Regex.Split(pageNO, "[^0-9]");

                                                    foreach (string item2 in arrPageNO)
                                                    {
                                                        try
                                                        {
                                                            if (!string.IsNullOrEmpty(item2))
                                                            {
                                                                strPageNumber = item2;
                                                            }
                                                        }
                                                        catch
                                                        {
                                                        }
                                                    }
                                                }
                                                catch
                                                {
                                                }
                                            }
                                        }
                                    }
                                    catch
                                    {
                                    }
                                }



                                try
                                {
                                    strPageNumber = strPageNumber.Replace(".", string.Empty);
                                    if (strPageNumber != string.Empty || strPageNumber == "0")
                                    {
                                        GlobusLogHelper.log.Info("[ " + DateTime.Now + " ] => [ Total Results found: " + strPageNumber + " ]");
                                    }
                                    pagenumber = int.Parse(strPageNumber);
                                }
                                catch (Exception)
                                {
                                }

                                pagenumber = (pagenumber / 10) + 1;

                                LinkedInScraper obj_LinkedInScraper = new LinkedInScraper();

                                EmployeeUrl = EmployeeUrl + "##CompanyEmployeeScraper";

                                obj_LinkedInScraper.StartCompanyEmployeeScraperWithPagination(ref HttpHelper, EmployeeUrl, pagenumber);
                            }
                            catch
                            { }
                        }
                        catch
                        { }
                    }
                }

                #endregion
            }
            catch { }
        }
 private void btn_LIS_Groups_GetGroups_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         LinkedInScraper objLinkedInScraper = new LinkedInScraper();
         Thread thrThreadStartGetGroups = new Thread(objLinkedInScraper.ThreadStartGetGroups);
         thrThreadStartGetGroups.Start();
     }
     catch (Exception ex)
     {
     }
 }
        private void btn_LinkedinScraper_Start_Click(object sender, RoutedEventArgs e)
        {
            #region Settings
            try            
            {
                if (chk_LinkedinScraper_ScraperInputs.IsChecked == true || chk_LIScraper_PremiumOption.IsChecked == true || chk_Scraper_LIScraper_Keyword_Title.IsChecked == true || chk_LinkedinScraper_Groups.IsChecked == true || chk_LIScraper_Industry_Relationship_Language.IsChecked == true || chk_LinkedinScraper_SearchByUrl.IsChecked == true)
                {
                    if (chk_LinkedinScraper_ScraperInputs.IsChecked == true)
                        GlobalsScraper.chkScraperInput = true;
                    if (chk_LIScraper_PremiumOption.IsChecked == true)
                        GlobalsScraper.chkPremiumOptions = true;
                     if (chk_Scraper_LIScraper_Keyword_Title.IsChecked == true)
                        GlobalsScraper.chkKeyword_Title = true;
                    if (chk_LinkedinScraper_Groups.IsChecked == true)
                        GlobalsScraper.chkGroups = true;
                    if (chk_LIScraper_Industry_Relationship_Language.IsChecked == true)
                        GlobalsScraper.chkIndustry_Relationship_Language = true;
                    if (chk_LinkedinScraper_SearchByUrl.IsChecked == true)
                        GlobalsScraper.chkSearchByUrl = true;
                }
                else
                {
                    GlobusLogHelper.log.Info("Please check atleast one of the checkboxes.");
                    MessageBox.Show("Please check atleast one of the checkboxes.");
                    return;
                }

                if (string.IsNullOrEmpty(txt_LinkedinScraper_MinDelay.Text) && string.IsNullOrEmpty(txt_LinkedinScraper_MaxDelay.Text))
                {
                    GlobusLogHelper.log.Info("Delay field cann't be empty.");
                    return;
                }
                else
                {
                    GlobalsScraper.txtMinDelay = Convert.ToInt32(txt_LinkedinScraper_MinDelay.Text.ToString());
                    GlobalsScraper.txtMaxDelay = Convert.ToInt32(txt_LinkedinScraper_MaxDelay.Text.ToString());
                }
            }
            catch (Exception ex)
            {
            } 
            #endregion

            try
            {
                Scraper.LinkedInScraper objLinkedInScraper = new LinkedInScraper();
                Thread thrStartLinkedInScraper = new Thread(objLinkedInScraper.ThreadStartLinkedInScraper);
                thrStartLinkedInScraper.Start();
            }
            catch (Exception ex)
            {
            }
        }
        private void GetEmployeeDataFromCompanyURL(ref GlobusHttpHelper HttpHelper, List<string> lstCompanyUrls)
        {
            try
            {
                if (!GlobalsScraper.isSearchByCompanyNamesToGetEmailId)
                {
                    foreach (string item in lstCompanyUrls)
                    {
                        try
                        {
                            GlobusLogHelper.log.Info("[ " + DateTime.Now + " ] => [ Starting Parsing With UserName : "******" ]");
                            //Log("Url >>> " + item);
                            string compCode = Regex.Split(item, "company/")[1];
                            compCode = compCode.Split('?')[0];
                            string EmployeeUrl = "https://www.linkedin.com/vsearch/p?keywords=" + SearchCriteria.Keyword + "&openAdvancedForm=true&locationType=" + SearchCriteria.Country + "&countryCode=" + SearchCriteria.Country + "&f_CC=" + compCode + "&rsid=&orig=ADVS";

                            string LinkPagesourceCompEmp = HttpHelper.getHtmlfromUrl1(new Uri(EmployeeUrl));

                            try
                            {
                                int pagenumber = 0;
                                string strPageNumber = string.Empty;
                                string[] Arr12 = Regex.Split(LinkPagesourceCompEmp, "<p class=\"summary\">");

                                if (Arr12.Count() == 1)
                                {
                                    Arr12 = Regex.Split(LinkPagesourceCompEmp, "formattedResultCount");
                                }

                                foreach (string item1 in Arr12)
                                {
                                    try
                                    {
                                        if (!item1.Contains("<!DOCTYPE"))
                                        {
                                            if (item1.Contains("<strong>"))
                                            {
                                                try
                                                {
                                                    //":"15,439","i18n_survey_feedback_thanks":
                                                    string pageNO = Regex.Split(item1, "i18n_survey")[0].Replace(":", string.Empty).Replace(",", string.Empty).Replace("\"", string.Empty);

                                                    string[] arrPageNO = Regex.Split(pageNO, "[^0-9]");

                                                    foreach (string item2 in arrPageNO)
                                                    {
                                                        try
                                                        {
                                                            if (!string.IsNullOrEmpty(item2))
                                                            {
                                                                strPageNumber = item2;
                                                            }
                                                        }
                                                        catch
                                                        {
                                                        }
                                                    }
                                                }
                                                catch
                                                {
                                                }
                                            }
                                        }
                                    }
                                    catch
                                    {
                                    }
                                }



                                try
                                {
                                    strPageNumber = strPageNumber.Replace(".", string.Empty);
                                    if (strPageNumber != string.Empty || strPageNumber == "0")
                                    {
                                        GlobusLogHelper.log.Info("[ " + DateTime.Now + " ] => [ Total Results found: " + strPageNumber + " ]");
                                    }
                                    pagenumber = int.Parse(strPageNumber);
                                }
                                catch (Exception)
                                {

                                }

                                pagenumber = (pagenumber / 10) + 1;

                                LinkedInScraper obj_LinkedInScraper = new LinkedInScraper();

                                EmployeeUrl = EmployeeUrl + "##CompanyEmployeeScraper";

                                obj_LinkedInScraper.StartCompanyEmployeeScraperWithPagination(ref HttpHelper, EmployeeUrl, pagenumber);

                            }
                            catch
                            { }
                        }
                        catch
                        { }
                    }
                }

                #region for kishore's requirement
                if (GlobalsScraper.isSearchByCompanyNamesToGetEmailId)
                {
                    foreach (string item in lstCompanyUrls)
                    {
                        try
                        {
                            string compCode = "";
                            GlobusLogHelper.log.Info("[ " + DateTime.Now + " ] => [ Starting Parsing With UserName : "******" ]");
                            // string compCode = Regex.Split(item, "company/")[1];
                            // compCode = compCode.Split('?')[0];

                            string compName = item.Replace(" ", "+");
                            string CompUrl = "https://www.linkedin.com/vsearch/c?type=companies&keywords=" + compName;
                            string source = HttpHelper.getHtmlfromUrl1(new Uri(CompUrl));
                            string[] arr = Regex.Split(source, "fmt_industry");
                            string url = "";
                            if (arr.Length > 1)
                            {
                                url = Utils.getBetween(arr[1], "link_biz_overview_", "\",\"");
                                url = Utils.getBetween(url + "###", "\":\"/", "###");
                                compCode = Utils.getBetween(url, "company/", "?");


                            }
                            url = "https://www.linkedin.com/" + url;
                            source = HttpHelper.getHtmlfromUrl1(new Uri(url));

                            string EmployeeUrl = "https://www.linkedin.com/vsearch/p?keywords=" + SearchCriteria.Keyword + "&openAdvancedForm=true&locationType=" + SearchCriteria.Country + "&countryCode=" + SearchCriteria.Country + "&f_CC=" + compCode + "&rsid=&orig=ADVS";
                            string LinkPagesourceCompEmp = HttpHelper.getHtmlfromUrl1(new Uri(EmployeeUrl));

                            try
                            {
                                int pagenumber = 0;
                                string strPageNumber = string.Empty;
                                string[] Arr12 = Regex.Split(LinkPagesourceCompEmp, "<p class=\"summary\">");

                                if (Arr12.Count() == 1)
                                {
                                    Arr12 = Regex.Split(LinkPagesourceCompEmp, "formattedResultCount");
                                }

                                foreach (string item1 in Arr12)
                                {
                                    try
                                    {
                                        if (!item1.Contains("<!DOCTYPE"))
                                        {
                                            if (item1.Contains("<strong>"))
                                            {
                                                try
                                                {
                                                    //":"15,439","i18n_survey_feedback_thanks":
                                                    string pageNO = Regex.Split(item1, "i18n_survey")[0].Replace(":", string.Empty).Replace(",", string.Empty).Replace("\"", string.Empty);

                                                    string[] arrPageNO = Regex.Split(pageNO, "[^0-9]");

                                                    foreach (string item2 in arrPageNO)
                                                    {
                                                        try
                                                        {
                                                            if (!string.IsNullOrEmpty(item2))
                                                            {
                                                                strPageNumber = item2;
                                                            }
                                                        }
                                                        catch
                                                        {
                                                        }
                                                    }
                                                }
                                                catch
                                                {
                                                }
                                            }
                                        }
                                    }
                                    catch
                                    {
                                    }
                                }



                                try
                                {
                                    strPageNumber = strPageNumber.Replace(".", string.Empty);
                                    if (strPageNumber != string.Empty || strPageNumber == "0")
                                    {
                                        GlobusLogHelper.log.Info("[ " + DateTime.Now + " ] => [ Total Results found: " + strPageNumber + " ]");
                                    }
                                    pagenumber = int.Parse(strPageNumber);
                                }
                                catch (Exception)
                                {

                                }

                                pagenumber = (pagenumber / 10) + 1;

                                LinkedInScraper obj_LinkedInScraper = new LinkedInScraper();

                                EmployeeUrl = EmployeeUrl + "##CompanyEmployeeScraper";

                                obj_LinkedInScraper.StartCompanyEmployeeScraperWithPagination(ref HttpHelper, EmployeeUrl, pagenumber);

                            }
                            catch
                            { }
                        }
                        catch
                        { }
                    }
                }

                #endregion
            }
            catch { }
        }