Ejemplo n.º 1
0
        public async Task <JsonResult <List <JobEntity> > > GetJob_51Job(string city, string key, int index)
        {
            try
            {
                var cache = GetJobCacheObject();
                var data  = cache.GetData();
                if (data != null)
                {
                    return new JsonResult <List <JobEntity> > {
                               Result = data.Data
                    }
                }
                ;

                var cityCode = JobCityCode.GetCityCode(JobRecruitment._51job, city);
                var url      = $"http://search.51job.com/jobsearch/search_result.php?jobarea={cityCode}&keyword={key}&curr_page={index}";
                using (var http = new HttpClient())
                {
                    var htmlBytes = await http.GetByteArrayAsync(url);

                    var htmlContent = Encoding.GetEncoding("GBK").GetString(htmlBytes);
                    var parser      = new HtmlParser();
                    var jobInfos    = (await parser.ParseAsync(htmlContent))
                                      .QuerySelectorAll(".dw_table div.el")
                                      .Where(x => x.QuerySelectorAll(".t1 span a").FirstOrDefault() != null)
                                      .Select(x => new JobEntity()
                    {
                        PositionName = x.QuerySelectorAll(".t1 span a").FirstOrDefault().TextContent.Trim(),
                        CompanyName  = x.QuerySelectorAll(".t2 a").FirstOrDefault().TextContent.Trim(),
                        Salary       = x.QuerySelectorAll(".t3").FirstOrDefault().TextContent.Trim(),
                        WorkingPlace = x.QuerySelectorAll(".t4").FirstOrDefault().TextContent.Trim(),
                        ReleaseDate  = x.QuerySelectorAll(".t5").FirstOrDefault().TextContent.Trim(),
                        DetailUrl    = x.QuerySelectorAll(".t1 span a").FirstOrDefault().Attributes.FirstOrDefault(d => d.Name == "href").Value.Trim(),
                        Source       = JobRecruitment._51job.GetType().GetMember(JobRecruitment._51job.ToString()).FirstOrDefault().GetCustomAttribute <DescriptionAttribute>().Description
                    }).ToList();

                    cache.AddData(jobInfos);

                    return(new JsonResult <List <JobEntity> > {
                        Result = jobInfos
                    });
                }
            }
            catch (Exception e)
            {
                return(new JsonResult <List <JobEntity> > {
                    Reason = e.Message
                });
            }
        }
Ejemplo n.º 2
0
        public async Task <JsonResult <List <JobEntity> > > GetJob_Zhipin(string city, string key, int index)
        {
            try
            {
                var cache = GetJobCacheObject();
                var data  = cache.GetData();
                if (data != null)
                {
                    return new JsonResult <List <JobEntity> > {
                               Result = data.Data
                    }
                }
                ;

                var cityCode = JobCityCode.GetCityCode(JobRecruitment._zhipin, city);
                var url      = $"http://www.zhipin.com/c{cityCode}/h_{cityCode}/?query={key}&page={1}";
                using (var http = new HttpClient())
                {
                    var htmlContent = await http.GetStreamAsync(url);

                    var parser   = new HtmlParser();
                    var jobInfos = parser.Parse(htmlContent)
                                   .QuerySelectorAll(".job-list ul li")
                                   .Where(x => x.QuerySelectorAll(".info-primary h3").FirstOrDefault() != null)
                                   .Select(x => new JobEntity()
                    {
                        PositionName = x.QuerySelectorAll(".info-primary h3 .job-title").FirstOrDefault().TextContent.Trim(),
                        CompanyName  = x.QuerySelectorAll(".company-text h3").FirstOrDefault().TextContent.Trim(),
                        Salary       = x.QuerySelectorAll(".info-primary h3 .red").FirstOrDefault().TextContent.Trim(),
                        WorkingPlace = x.QuerySelectorAll(".info-primary p").FirstOrDefault().TextContent.Split("  ")[0].Trim(),
                        ReleaseDate  = x.QuerySelectorAll(".info-publis p").FirstOrDefault().TextContent.Replace("发布于", "").Trim(),
                        DetailUrl    = $"http://www.zhipin.com{x.QuerySelectorAll("a").FirstOrDefault().Attributes.FirstOrDefault(d => d.Name == "href").Value.Trim()}",
                        Source       = JobRecruitment._zhipin.GetType().GetMember(JobRecruitment._zhipin.ToString()).FirstOrDefault().GetCustomAttribute <DescriptionAttribute>().Description
                    }).ToList();

                    cache.AddData(jobInfos);

                    return(new JsonResult <List <JobEntity> > {
                        Result = jobInfos
                    });
                }
            }
            catch (Exception e)
            {
                return(new JsonResult <List <JobEntity> > {
                    Reason = e.Message
                });
            }
        }
Ejemplo n.º 3
0
        public async Task <JsonResult <List <JobEntity> > > GetJob_Zhaopin(string city, string key, int index)
        {
            try
            {
                var cache = GetJobCacheObject();
                var data  = cache.GetData();
                if (data != null)
                {
                    return new JsonResult <List <JobEntity> > {
                               Result = data.Data
                    }
                }
                ;

                var cityCode = JobCityCode.GetCityCode(JobRecruitment._zhaopin, city);
                var url      = $"http://sou.zhaopin.com/jobs/searchresult.ashx?jl={cityCode}&kw={key}&p={index}";
                using (var http = new HttpClient())
                {
                    var htmlContent = await http.GetStringAsync(url);

                    var parser   = new HtmlParser();
                    var jobInfos = parser.Parse(htmlContent)
                                   .QuerySelectorAll(".newlist_list_content table")
                                   .Where(x => x.QuerySelectorAll(".zwmc a").FirstOrDefault() != null)
                                   .Select(x => new JobEntity()
                    {
                        PositionName = x.QuerySelectorAll(".zwmc a").FirstOrDefault().TextContent.Trim(),
                        CompanyName  = x.QuerySelectorAll(".gsmc a").FirstOrDefault().TextContent.Trim(),
                        Salary       = x.QuerySelectorAll(".zwyx").FirstOrDefault().TextContent.Trim(),
                        WorkingPlace = x.QuerySelectorAll(".gzdd").FirstOrDefault().TextContent.Trim(),
                        ReleaseDate  = x.QuerySelectorAll(".gxsj span").FirstOrDefault().TextContent.Trim(),
                        DetailUrl    = x.QuerySelectorAll(".zwmc a").FirstOrDefault().Attributes.FirstOrDefault(d => d.Name == "href").Value.Trim(),
                        Source       = JobRecruitment._zhaopin.GetType().GetMember(JobRecruitment._zhaopin.ToString()).FirstOrDefault().GetCustomAttribute <DescriptionAttribute>().Description
                    }).ToList();

                    cache.AddData(jobInfos);

                    return(new JsonResult <List <JobEntity> > {
                        Result = jobInfos
                    });
                }
            }
            catch (Exception e)
            {
                return(new JsonResult <List <JobEntity> > {
                    Reason = e.Message
                });
            }
        }
Ejemplo n.º 4
0
        public async Task <JsonResult <List <JobEntity> > > GetJob_Liepin(string city, string key, int index)
        {
            try
            {
                var cache = GetJobCacheObject();
                var data  = cache.GetData();
                if (data != null)
                {
                    return new JsonResult <List <JobEntity> > {
                               Result = data.Data
                    }
                }
                ;

                var cityCode = JobCityCode.GetCityCode(JobRecruitment._liepin, city);
                var url      = $"http://www.liepin.com/zhaopin/?key={key}&dqs={cityCode}&curPage={index}";
                using (var http = new HttpClient())
                {
                    var htmlContent = await http.GetStreamAsync(url);

                    var parser   = new HtmlParser();
                    var jobInfos = parser.Parse(htmlContent)
                                   .QuerySelectorAll("ul.sojob-list li")
                                   .Where(x => x.QuerySelectorAll(".job-info h3 a").FirstOrDefault() != null)
                                   .Select(x => new JobEntity()
                    {
                        PositionName = x.QuerySelectorAll(".job-info h3 a").FirstOrDefault().TextContent.Trim(),
                        CompanyName  = x.QuerySelectorAll(".company-name a").FirstOrDefault().TextContent.Trim(),
                        Salary       = x.QuerySelectorAll(".text-warning").FirstOrDefault().TextContent.Trim(),
                        WorkingPlace = x.QuerySelectorAll(".area").FirstOrDefault().TextContent.Trim(),
                        ReleaseDate  = x.QuerySelectorAll(".time-info time").FirstOrDefault().TextContent.Trim(),
                        DetailUrl    = x.QuerySelectorAll(".job-info h3 a").FirstOrDefault().Attributes.FirstOrDefault(d => d.Name == "href").Value.Trim(),
                        Source       = JobRecruitment._liepin.GetType().GetMember(JobRecruitment._liepin.ToString()).FirstOrDefault().GetCustomAttribute <DescriptionAttribute>().Description
                    }).ToList();

                    cache.AddData(jobInfos);

                    return(new JsonResult <List <JobEntity> > {
                        Result = jobInfos
                    });
                }
            }
            catch (Exception e)
            {
                return(new JsonResult <List <JobEntity> > {
                    Reason = e.Message
                });
            }
        }