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 }); } }
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 }); } }
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 }); } }
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 }); } }