1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | from selenium import webdriver import time from selenium.webdriver.common.by import By from selenium.webdriver.common.service import Service from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.chrome.service import Service # ChromeDriver 和 Chrome 浏览器的路径 chrome_driver_path = r 'C:\Users\Administrator\AppData\Local\Google Chrome\Chromebin\chromedriver.exe' chrome_binary_path = r 'C:\Users\Administrator\AppData\Local\Google Chrome\Chromebin\chrome.exe' # 创建 ChromeOptions 对象 options = webdriver.ChromeOptions() options.binary_location = chrome_binary_path options.add_experimental_option( "detach" , True ) options.add_argument( '--ignore-certificate-errors' ) options.add_experimental_option( 'excludeSwitches' , [ 'enable-automation' , 'enable-logging' ]) # 创建 Service 对象 service = Service(chrome_driver_path) # 创建 WebDriver 对象 driver = webdriver.Chrome(service = service, options = options) driver.get( "https://www.zhipin.com/shenzhen/?sid=sem_pz_bdpc_dasou_title" ) time.sleep( 2 ) #点击注册登陆 # driver.find_element(".user-nav .btns .btn-outline").click() login = driver.find_element(By.XPATH, '/html/body/div[1]/div[1]/div[1]/div[4]/div/a' ).click() bossType = input ( "手机号登录请输入1 微信登录请输入2:" ) if bossType.isdigit(): if bossType = = '1' : #输入登陆的手机号 phone = input ( "请输入手机号" ) driver.find_element(By.XPATH, "./html/body/div/div/div[2]/div[2]/div[2]/div[1]/div[1]/div/span[2]/input" ).send_keys(phone) #获取验证码 driver.find_element(By.XPATH, '//*[@id="wrap"]/div/div[2]/div[2]/div[2]/div[1]/div[2]/div/div[1]' ).click() time.sleep( 5 ) # #点击完成验证 # driver.find_element(By.XPATH,'/html/body/div/div/div[2]/div/div[2]/div[1]/div[2]/div/span/div').click() time.sleep( 3 ) #输入验证码 yzm = input ( "请输入验证码" ) #输入验证码 driver.find_element(By.XPATH, "/html/body/div/div/div[2]/div/div[2]/div[1]/div[2]/div/span/input" ).send_keys(yzm) #点击登协议 .login-policy-wrapper > .agree-policy-wrapper driver.find_element(By.XPATH, "/html/body/div/div/div[2]/div[2]/div[2]/div[2]/span/input" ).click() #点击登陆 driver.find_element(By.XPATH, "/html/body/div/div/div[2]/div[2]/div[2]/div[1]/div[3]/button" ).click() time.sleep( 10 ) elif bossType = = '2' : driver.find_element(By.XPATH, "/html/body/div/div/div[2]/div[2]/div[2]/div[1]/div[4]/a" ).click() time.sleep( 10 ) else : print ( "请输入数字" ) # 打印当前路径 # 尝试直接跳转 # 判断元素是否存在 handles = driver.window_handles #获取当前浏览器的所有窗口句柄 driver.switch_to.window(handles[ - 1 ]) driver.get( "https://www.zhipin.com/web/geek/job-recommend" ) # try: time.sleep( 2 ) driver.window_handles test_element = driver.find_element(By.XPATH, "/html/body/div[1]/div[1]/div/div/div[1]" ) # print("判断元素是否存在") # d点击经常投递的简历类型 # driver.find_element(By.XPATH,"//*[@id='wrap']/div[2]/div[1]/div/div[1]/a[3]/span").click() # 获取职位列表 list_tab = driver.find_elements(By.XPATH, "//*[@id='wrap']/div[2]/div[2]" ) # 开始循环 while True : handles = driver.window_handles #获取当前浏览器的所有窗口句柄 driver.switch_to.window(handles[ - 1 ]) list_tab[ 0 ].click() time.sleep( 2 ) driver.find_element(By.LINK_TEXT, "立即沟通" ).click() # WebDriverWait(driver, 20).until(EC.new_window_is_opened(handles)) wins = driver.window_handles print (wins) # 打印当前所有窗口的句柄 print (driver.current_window_handle) # 打印当前窗口的句柄 # popup = driver.find_element(By.CSS_SELECTOR, '.greet-boss-dialog') # mask = driver.find_element(By.CSS_SELECTOR, '.greet-boss-dialog') # 如果弹出div是不可见的,可以等待它变为可见 # wait = WebDriverWait(driver, 10) # wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.greet-boss-dialog'))) mask_element = WebDriverWait(driver, 10 ).until( EC.visibility_of_element_located((By.CSS_SELECTOR, '.greet-boss-dialog' ))) # 如果元素被找到并且是可见的,则遮罩层显示 if mask_element: driver.find_element(By.XPATH, "/html/body/div[8]/div[2]/div[3]/a[2]" ).click() time.sleep( 2 ) driver.get( "https://www.zhipin.com/web/geek/job-recommend" ) time.sleep( 2 ) handles = driver.window_handles #获取当前浏览器的所有窗口句柄 driver.switch_to.window(handles[ - 1 ]) # driver.find_element(By.XPATH,"/html/body/div[1]/div[2]/div[1]/div/div[1]/a[3]/span").click() # test_element = driver.find_element(By.XPATH,"/html/body/div[1]/div[1]/div/div/div[1]") # try: time.sleep( 2 ) # driver.window_handles list_tab = driver.find_elements(By.XPATH, "//*[@id='wrap']/div[2]/div[2]" ) time.sleep( 2 ) else : print ( "遮罩层没有显示" ) # except: # print('异常说明') |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述