private List <UngVien> XuLyCV(XBrowser browser, JobLink job) { job.trang_thai_xu_ly = TrangThaiXuLy.DA_XU_LY; List <UngVien> lst_ung_vien = new List <UngVien>(); try { UngVien ung_vien = new UngVien(); ung_vien.ngay_tao = ung_vien.ngay_sua = XUtil.TimeInEpoch(DateTime.Now); ung_vien.app_id = job.app_id; ung_vien.job_link = job.link; ung_vien.vi_tri = job.ten_job; ThongTinChungUngVien ttuv = new ThongTinChungUngVien(); ttuv.domain = "https://careerbuilder.vn/"; //ttuv.full_text = block_ung_vien.FindElement(By.XPath("//div[@class='Card__root ApplicationCard__root']")).; ung_vien.thong_tin_chung = ttuv; ung_vien.ho_ten = browser.GetInnerText(".//div[@class='act_more']/a/b", 200); ung_vien.link_cv_online = ""; ung_vien.ky_nang = ""; ung_vien.hoc_van = browser.GetInnerText(".//ul[@class='block_info bullet block01']/li[2]/div"); //div[@class='info-list']/ul/li[1] ung_vien.ngay_sinh = 0; ung_vien.so_dien_thoai = browser.GetInnerText(".//ul[@class='block_info block02']/li[1]/div"); ung_vien.email = browser.GetInnerText(".//ul[@class='block_info block02']/li[2]/div"); ung_vien.dia_chi = browser.GetInnerText(".//ul[@class='block_info block02']/li[3]/div"); Uri uri = new Uri(job.link); ung_vien.domain = uri.Host; var id = string.Join("/", job.link.Split('/').Skip(5)); //id = id.Substring(0, id.LastIndexOf('/')); ung_vien.custom_id = id; //Tai file var ifr = browser.FindFirst("//div[@id='tabs-chitiethoso']//iframe"); if (ifr != null) { ung_vien.link_cv_offline = browser.DownloadByBrowserInIFrame("//div[@id='tabs-chitiethoso']//iframe", "//button[@id='download']"); if (!string.IsNullOrEmpty(ung_vien.link_cv_offline)) { ung_vien.cv_byte = File.ReadAllBytes($"{cv_save_path}\\{ung_vien.link_cv_offline}"); } } ung_vien.full_text = browser.GetPageSource(); ung_vien.nguoi_tao = job.nguoi_tao; lst_ung_vien.Add(ung_vien); var count = lst_ung_vien.Count; System.Threading.Thread.Sleep(2000); } catch (Exception ex) { job.trang_thai_xu_ly = TrangThaiXuLy.LOI; job.thong_tin_xu_ly = ex.Message; } job.ngay_xu_ly = XUtil.TimeInEpoch(); return(lst_ung_vien); }
public JobLink(LoaiLink _loai) { link = ""; tieu_de = ""; json = ""; loai = _loai; ngay_sua = ngay_tao = XUtil.TimeInEpoch(); if (_loai == LoaiLink.JOB_LINK) { json = null; } }
public List <UngVien> Run(CauHinh ch, List <JobLink> lst_job_link, ToolStripStatusLabel toolStripStatusLabel1) { is_authenticated = false; List <UngVien> lst_ung_vien = new List <UngVien>(); string wait_xpath = ".//li[@class='dropdown dropdown-user']"; using (var browser = new XBrowser(user_profile_path, cv_save_path, string.Empty, false, show_browser)) { foreach (var job in lst_job_link) { string url = browser.GoTo(job.link); is_authenticated = url.Contains(ch.url_login) ? browser.Login(ch.url_login, ch.username, ch.password, ch.xpath_username, ch.xpath_password, out string msg, wait_xpath, false) : browser.GetUrl().Contains(url); if (is_authenticated) { //string r_url = browser.GoTo(job.link); System.Threading.Thread.Sleep(1000); browser.FindAndClick(".//a[@href='#tab2']"); var ung_vien = browser.Find(".//tbody[@id='applied']//strong/a"); var url_detail_uv = new List <string>(); foreach (var uv in ung_vien) { var link_uv = browser.GetAttribute(uv, "href"); url_detail_uv.Add(link_uv); } if (url_detail_uv.Count > 0) { foreach (var u_v in url_detail_uv) { browser.GoTo(u_v); toolStripStatusLabel1.Text = $"Đang xử lý link:{job.link}"; var lst_cv_by_job = XuLyCV(browser, job); lst_ung_vien.AddRange(lst_cv_by_job); } } else { job.trang_thai_xu_ly = TrangThaiXuLy.DA_XU_LY; job.ngay_xu_ly = XUtil.TimeInEpoch(); toolStripStatusLabel1.Text = $"Không tìm thấy ứng viên link:{job.link}"; } job.tong_so_cv = url_detail_uv.Count; ES.JobLinkRepository.Instance.UpdateTrangThaiXuLy(job); } } } return(new List <UngVien>(lst_ung_vien)); }
public List <UngVien> XuLyCV(XBrowser browser, JobLink job, string url_ung_vien) { job.trang_thai_xu_ly = TrangThaiXuLy.DA_XU_LY; List <UngVien> lst_ung_vien = new List <UngVien>(); try { //var eles_ung_vien = browser.Find("//table[@class='el-table__body']//tbody//div/div/div[1]/a"); //if (eles_ung_vien.Count <= 0) //{ // job.thong_tin_xu_ly = Common.KHONG_TIM_THAY_UNG_VIEN; //} try { UngVien ung_vien = new UngVien(); ung_vien.vi_tri = job.ten_job; ung_vien.ngay_tao = ung_vien.ngay_sua = XMedia.XUtil.TimeInEpoch(); ung_vien.app_id = job.app_id; ung_vien.job_link = job.link; ung_vien.ho_ten = browser.GetInnerText("//div[@class='panel-body']//h5/span", 2000); ung_vien.link_cv_online = browser.GetAttribute("//div[@class='panel-footer']//div[@class='pull-right']//a", "href"); ThongTinChungUngVien ttuv = new ThongTinChungUngVien(); ttuv.domain = "mywork.com"; ung_vien.thong_tin_chung = ttuv; //Bóc tách XPATH để lấy được thông tin này nếu có ung_vien.kinh_nghiem = browser.GetInnerText("//div[@class='list-item']"); ung_vien.ky_nang = browser.GetInnerText("//div[@class='panel-body']/div[7]"); ung_vien.so_dien_thoai = browser.GetInnerText("//div[@class='info']//div/div[2]/p[2]/span"); ung_vien.email = browser.GetInnerText("//div[@class='info']//div[2]/p[1]/a"); Uri uri = new Uri(url_ung_vien); ung_vien.domain = uri.Host; ung_vien.custom_id = url_ung_vien.Split('/').Last(); ung_vien.hoc_van = ""; ung_vien.ngay_sinh = 0; //Tai file var cv_byte = browser.DownloadFile(ung_vien.link_cv_online, out string cv_file_name); if (cv_byte != null) { ung_vien.cv_byte = cv_byte; WriteFile($"{cv_save_path}\\{cv_file_name}", cv_byte); ung_vien.link_cv_offline = cv_file_name; } ung_vien.full_text = browser.GetPageSource(); ung_vien.nguoi_tao = job.nguoi_tao; lst_ung_vien.Add(ung_vien); } catch (Exception ex) { Console.WriteLine(ex); } } catch (Exception ex) { job.trang_thai_xu_ly = TrangThaiXuLy.LOI; job.thong_tin_xu_ly = ex.Message; } job.ngay_xu_ly = XUtil.TimeInEpoch(); return(lst_ung_vien); }
private List <UngVien> XuLyCV(XBrowser browser, JobLink job) { job.trang_thai_xu_ly = TrangThaiXuLy.DA_XU_LY; List <UngVien> lst_ung_vien = new List <UngVien>(); try { var eles_ung_vien = browser.Find("//div[@class='table-responsive']/table//td[2]/a"); if (eles_ung_vien.Count > 0) { foreach (var item_ung_vien in eles_ung_vien) { try { browser.Click(item_ung_vien); UngVien ung_vien = new UngVien(); ung_vien.vi_tri = job.ten_job; ung_vien.ngay_tao = ung_vien.ngay_sua = XMedia.XUtil.TimeInEpoch(); ung_vien.app_id = job.app_id; ung_vien.job_link = job.link; ung_vien.ho_ten = browser.GetInnerText("//div[@id='action-box']//tr[1]//td[1]", 2000); ung_vien.link_cv_online = browser.GetAttribute("//a[@id='btn-download-candidate']", "href"); ThongTinChungUngVien ttuv = new ThongTinChungUngVien(); ttuv.domain = "topcv.vn"; ttuv.full_text = browser.GetInnerHtml("//div[@id='action-box']/table"); ung_vien.thong_tin_chung = ttuv; //Bóc tách XPATH để lấy được thông tin này nếu có ung_vien.kinh_nghiem = browser.GetInnerText("//div[@class='info']//div/div[1]/p[3]/strong"); ung_vien.ky_nang = ""; ung_vien.hoc_van = ""; ung_vien.ngay_sinh = 0; //Tai file var cv_byte = browser.DownloadFile(ung_vien.link_cv_online, out string cv_file_name); if (cv_byte != null) { ung_vien.cv_byte = cv_byte; WriteFile($"{cv_save_path}\\{cv_file_name}", cv_byte); ung_vien.link_cv_offline = cv_file_name; } ung_vien.full_text = browser.GetPageSource(); ung_vien.nguoi_tao = job.nguoi_tao; lst_ung_vien.Add(ung_vien); browser.FindAndClick("//div[@title='Đóng lại']"); } catch (Exception) { } } } else { job.thong_tin_xu_ly = Common.KHONG_TIM_THAY_UNG_VIEN; } } catch (Exception ex) { job.trang_thai_xu_ly = TrangThaiXuLy.LOI; job.thong_tin_xu_ly = ex.Message; } job.ngay_xu_ly = XUtil.TimeInEpoch(); return(lst_ung_vien); }
public LinkSaved() { ngay_tao = XUtil.TimeInEpoch(DateTime.Now); ngay_sua = XUtil.TimeInEpoch(DateTime.Now); }
private List <UngVien> XuLyCV(XBrowser browser, JobLink job) { job.trang_thai_xu_ly = TrangThaiXuLy.DA_XU_LY; List <UngVien> lst_ung_vien = new List <UngVien>(); try { UngVien ung_vien = new UngVien(); ung_vien.ngay_tao = ung_vien.ngay_sua = XUtil.TimeInEpoch(DateTime.Now); ung_vien.app_id = job.app_id; ung_vien.job_link = job.link; ung_vien.vi_tri = job.ten_job; ThongTinChungUngVien ttuv = new ThongTinChungUngVien(); ttuv.domain = "jobsgo.vn"; //ttuv.full_text = block_ung_vien.FindElement(By.XPath("//div[@class='Card__root ApplicationCard__root']")).; ung_vien.thong_tin_chung = ttuv; ung_vien.ho_ten = browser.GetInnerText(".//div[@title='Họ tên ứng viên']", 200); ung_vien.link_cv_online = browser.GetAttribute("//div[@class='lnks']/a[@class='btn-download-cv lnk cv']", "href"); ung_vien.ky_nang = browser.GetInnerText("//div[@class='skills-list']"); ung_vien.hoc_van = browser.GetInnerText("//div[@class='resume-items']//div[@class='name']"); //div[@class='info-list']/ul/li[1] ung_vien.ngay_sinh = 0; ung_vien.so_dien_thoai = browser.GetInnerText("//div[@class='info-list']/ul/li[3]/span[@class='tel']"); ung_vien.email = browser.GetInnerText("//div[@class='info-list']/ul/li[4]/span[@class='email']"); ung_vien.dia_chi = browser.GetInnerText("//div[@class='info-list']/ul/li[5]/span[@class='address']"); Uri uri = new Uri(job.link); ung_vien.domain = uri.Host; var id = string.Join("/", job.link.Split('/').Skip(5)); //id = id.Substring(0, id.LastIndexOf('/')); ung_vien.custom_id = id; //Tai file //javascript:void(0) var link_cv = browser.GetAttribute("//div[@class='lnks']/a[@class='btn-download-cv lnk cv']", "href"); if (link_cv.Contains("javascript:void(0)")) { System.Threading.Thread.Sleep(2500); link_cv = browser.GetAttribute("//div[@class='lnks']/a[@class='btn-download-cv lnk cv']", "href"); ung_vien.link_cv_online = link_cv; } else { System.Threading.Thread.Sleep(2500); ung_vien.link_cv_online = link_cv; } var cv_byte = browser.DownloadFile(ung_vien.link_cv_online, out string cv_file_name); if (cv_byte != null) { ung_vien.cv_byte = cv_byte; WriteFile($"{cv_save_path}\\{cv_file_name}", cv_byte); ung_vien.link_cv_offline = cv_file_name; } ung_vien.full_text = browser.GetPageSource(); ung_vien.nguoi_tao = job.nguoi_tao; lst_ung_vien.Add(ung_vien); var count = lst_ung_vien.Count; System.Threading.Thread.Sleep(2000); } catch (Exception ex) { job.trang_thai_xu_ly = TrangThaiXuLy.LOI; job.thong_tin_xu_ly = ex.Message; } job.ngay_xu_ly = XUtil.TimeInEpoch(); return(lst_ung_vien); }
private List <UngVien> XuLyCV(XBrowser browser, JobLink job) { job.trang_thai_xu_ly = TrangThaiXuLy.DA_XU_LY; List <UngVien> lst_ung_vien = new List <UngVien>(); try { var eles_ung_vien = browser.Find("//div[@class='Card__root ApplicationCard__root']"); List <string> lst_block_ung_vien = new List <string>(); if (eles_ung_vien.Count > 0) { foreach (var block_ung_vien in eles_ung_vien) { try { UngVien ung_vien = new UngVien(); ung_vien.ngay_tao = ung_vien.ngay_sua = XUtil.TimeInEpoch(DateTime.Now); ung_vien.app_id = job.app_id; ung_vien.job_link = job.link; ung_vien.vi_tri = job.ten_job; try { ung_vien.ho_ten = block_ung_vien.FindElement(By.ClassName("ApplicationCard__name")).Text; } catch (Exception) { ung_vien.ho_ten = ""; } try { browser.FindFirst(".//div[@class='CardCopy__regularSpacing CardCopy__extraTopMargin']/a").Click(); System.Threading.Thread.Sleep(1500); ung_vien.link_cv_online = block_ung_vien.FindElement(By.XPath(".//iframe[@class='DownloadResume__downloadFrame']")).GetAttribute("src"); } catch (Exception) { } ThongTinChungUngVien ttuv = new ThongTinChungUngVien(); ttuv.domain = "jobstreet.vn"; //ttuv.full_text = block_ung_vien.FindElement(By.XPath("//div[@class='Card__root ApplicationCard__root']")).; ung_vien.thong_tin_chung = ttuv; //Bóc tách XPATH để lấy được thông tin này nếu có var is_exist_email = browser.FindFirst(".//div[@class='ApplicationCard__revealEmailAddress']/span/a"); var is_exist_phone = browser.FindFirst(".//div[@class='ApplicationCard__revealPhoneNumber']/span/a"); if ((is_exist_email != null && is_exist_email.Displayed == true) || (is_exist_phone != null && is_exist_phone.Displayed == true)) { if (is_exist_email != null) { is_exist_email.Click(); System.Threading.Thread.Sleep(300); var element_email = block_ung_vien.FindElement(By.XPath(".//div[@class='ApplicationCard__revealEmailAddress']/a")); if (element_email != null && element_email.Displayed == true) { ung_vien.email = block_ung_vien.FindElement(By.XPath(".//div[@class='ApplicationCard__revealEmailAddress']/a")).Text; } } if (is_exist_phone != null) { is_exist_phone.Click(); System.Threading.Thread.Sleep(300); var element_phone = browser.FindFirst(".//div[@class='ApplicationCard__revealPhoneNumber']/span/a"); if (element_phone != null && element_phone.Displayed == true) { ung_vien.so_dien_thoai = block_ung_vien.FindElement(By.XPath("//div[@class='ApplicationCard__revealPhoneNumber']")).Text; } } } ung_vien.ky_nang = ""; ung_vien.hoc_van = ""; ung_vien.ngay_sinh = 0; Uri uri = new Uri(job.link); ung_vien.domain = uri.Host; var id = string.Join("/", job.link.Split('/').Skip(5)); id = id.Substring(0, id.LastIndexOf('/')); ung_vien.custom_id = id; //Tai file //browser.DownloadByBrowser(block_ung_vien.FindElement(By.XPath(".//div[@class='CardCopy__regularSpacing CardCopy__extraTopMargin']/a"))); var cv_byte = browser.DownloadFile(ung_vien.link_cv_online, out string cv_file_name); if (cv_byte != null) { ung_vien.cv_byte = cv_byte; WriteFile($"{cv_save_path}\\{cv_file_name}", cv_byte); ung_vien.link_cv_offline = cv_file_name; } ung_vien.full_text = browser.GetPageSource(); ung_vien.nguoi_tao = job.nguoi_tao; lst_ung_vien.Add(ung_vien); var count = lst_ung_vien.Count; //browser.FindAndClick("//div[@title='Đóng lại']"); } catch (Exception ex) { Console.WriteLine(ex); } } } else { job.thong_tin_xu_ly = Common.KHONG_TIM_THAY_UNG_VIEN; } } catch (Exception ex) { job.trang_thai_xu_ly = TrangThaiXuLy.LOI; job.thong_tin_xu_ly = ex.Message; } job.ngay_xu_ly = XUtil.TimeInEpoch(); return(lst_ung_vien); }