Esempio n. 1
0
        private static async void GetHtmlAsync()
        {
            var url = "https://id.indeed.com/lowongan-kerja?q=web+developer&l=Semarang";

            var httpClient = new HttpClient();
            var html       = await httpClient.GetStringAsync(url);

            var salary = "";

            var htmlDocument = new HtmlDocument();

            htmlDocument.LoadHtml(html);

            var JobsHtml = htmlDocument.DocumentNode.Descendants("td")
                           .Where(node => node.GetAttributeValue("id", "")
                                  .Equals("resultsCol")).ToList();
            var JobListItems = JobsHtml[0].Descendants("div")
                               .Where(node => node.GetAttributeValue("id", "")
                                      .Contains("p_")).ToList();

            foreach (var JobListItem in JobListItems)
            {
                Console.ForegroundColor = (ConsoleColor)10;

                var jobId = JobListItem.GetAttributeValue("id", "");

                var jobTitle = JobListItem.Descendants("a")
                               .Where(node => node.GetAttributeValue("data-tn-element", "")
                                      .Equals("jobTitle")).FirstOrDefault().InnerText;

                var companyName = JobListItem.Descendants("span")
                                  .Where(node => node.GetAttributeValue("class", "")
                                         .Equals("company")).FirstOrDefault().InnerText;

                var location = JobListItem.Descendants("span")
                               .Where(node => node.GetAttributeValue("class", "")
                                      .Contains("location")).FirstOrDefault().InnerText;

                var linkDetail = JobListItem.Descendants("a")
                                 .FirstOrDefault().GetAttributeValue("href", "");


                var urlDetail = "https://id.indeed.com" + linkDetail;

                var html2 = await httpClient.GetStringAsync(urlDetail);

                var htmlDocument2 = new HtmlDocument();
                htmlDocument2.LoadHtml(html2);

                var jobDesc = htmlDocument2.DocumentNode.Descendants("div")
                              .Where(node => node.GetAttributeValue("id", "")
                                     .Equals("jobDescriptionText")).FirstOrDefault().InnerText;

                try
                {
                    salary = JobListItem.Descendants("span")
                             .Where(node => node.GetAttributeValue("class", "")
                                    .Equals("salaryText")).FirstOrDefault().InnerText;
                }
                catch (Exception e)
                {
                }

                var date = JobListItem.Descendants("span")
                           .Where(node => node.GetAttributeValue("class", "")
                                  .Contains("date")).FirstOrDefault().InnerText;
                try
                {
                    Console.WriteLine(jobId + "\n" + jobTitle + "\n" + companyName + " - " + location + "\n" + linkDetail + "\n" + salary + "\n" + date + "\n" + jobDesc);
                }
                catch (Exception e)
                {
                    Console.WriteLine(jobId + "\n" + jobTitle + "\n" + companyName + " - " + location + "\n" + linkDetail + "\n" + date + "\n" + jobDesc);
                }
            }
        }
Esempio n. 2
0
        // GET api/values/5
        public async System.Threading.Tasks.Task <IEnumerable <JobModels> > GetAsync(string name)
        {
            JobModels jobModels = new JobModels();
            var       listJob   = new List <JobModels>();

            var url = "https://id.indeed.com/lowongan-kerja?q=" + name;

            var httpClient = new HttpClient();
            var html       = await httpClient.GetStringAsync(url);

            var salary = "";

            var htmlDocument = new HtmlDocument();

            htmlDocument.LoadHtml(html);

            var JobsHtml = htmlDocument.DocumentNode.Descendants("td")
                           .Where(node => node.GetAttributeValue("id", "")
                                  .Equals("resultsCol")).ToList();
            var JobListItems = JobsHtml[0].Descendants("div")
                               .Where(node => node.GetAttributeValue("id", "")
                                      .Contains("p_")).ToList();

            foreach (var JobListItem in JobListItems)
            {
                Console.ForegroundColor = (ConsoleColor)10;

                var jobId = JobListItem.GetAttributeValue("id", "");

                var jobTitle = JobListItem.Descendants("a")
                               .Where(node => node.GetAttributeValue("data-tn-element", "")
                                      .Equals("jobTitle")).FirstOrDefault().InnerText;

                var companyName = JobListItem.Descendants("span")
                                  .Where(node => node.GetAttributeValue("class", "")
                                         .Equals("company")).FirstOrDefault().InnerText;

                var location = JobListItem.Descendants("span")
                               .Where(node => node.GetAttributeValue("class", "")
                                      .Contains("location")).FirstOrDefault().InnerText;

                var linkDetail = JobListItem.Descendants("a")
                                 .FirstOrDefault().GetAttributeValue("href", "");


                var urlDetail = "https://id.indeed.com" + linkDetail;

                var html2 = await httpClient.GetStringAsync(urlDetail);

                var htmlDocument2 = new HtmlDocument();
                htmlDocument2.LoadHtml(html2);

                var jobDesc = htmlDocument2.DocumentNode.Descendants("div")
                              .Where(node => node.GetAttributeValue("id", "")
                                     .Equals("jobDescriptionText")).FirstOrDefault().InnerText;

                try
                {
                    salary = JobListItem.Descendants("span")
                             .Where(node => node.GetAttributeValue("class", "")
                                    .Equals("salaryText")).FirstOrDefault().InnerText;
                }
                catch (Exception e)
                {
                }

                var date = JobListItem.Descendants("span")
                           .Where(node => node.GetAttributeValue("class", "")
                                  .Contains("date")).FirstOrDefault().InnerText;


                listJob.Add(new JobModels {
                    JobName     = jobTitle,
                    JobSalary   = salary,
                    JobDate     = date,
                    JobLink     = urlDetail,
                    JobCompany  = companyName,
                    JobLocation = location,
                    JobDesc     = jobDesc,
                });
            }
            return(listJob);
        }