python脚本之猎聘网自动化投递

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.edge.service import Service
from selenium.webdriver.common.action_chains import ActionChains
import time
from webdriver_manager.microsoft import EdgeChromiumDriverManager
from selenium.webdriver.edge.service import Service as EdgeService

edge_options = webdriver.EdgeOptions()
edge_options.add_argument("--disable-gpu")
edge_options.add_argument("--no-sandbox")
edge_options.add_argument("--start-maximized")

try:
    # 初始化 WebDriver
    driver = webdriver.Edge(service=EdgeService(EdgeChromiumDriverManager().install()), options=edge_options)
except Exception as e:
    print(f"无法自动安装 EdgeDriver,请手动下载并指定路径:{e}")
    exit(1)

try:
    # 打开目标网址
    driver.get("https://www.liepin.com/zhaopin/?city=020&dq=020&pubTime=&currentPage=0&pageSize=40&key=ai%E6%95%B0%E6%8D%AE%E6%A0%87%E6%B3%A8&suggestTag=&workYearCode=0&compId=&compName=&compTag=&industry=&salaryCode=&jobKind=&compScale=&compKind=&compStage=&eduLevel=&otherCity=&ckId=psk8lcvanicaty6550ncdmotof2hweba&skId=psk8lcvanicaty6550ncdmotof2hweba&fkId=psk8lcvanicaty6550ncdmotof2hweba&scene=condition&sfrom=search_job_pc&suggestId=")
    # 等待用户输入 y 开始执行
    user_input = input("请输入 y 开始执行自动化操作:")
    if user_input.lower() != 'y':
        print("操作取消。")
        driver.quit()
        exit()

    wait = WebDriverWait(driver, 10)
    action_chains = ActionChains(driver)

    while True:
        # 等待 job-list-box 容器出现
        job_list_box = wait.until(EC.presence_of_element_located((By.CLASS_NAME, "job-list-box")))
        job_containers = job_list_box.find_elements(By.XPATH, "./*")

        for container in job_containers:
            # 鼠标移动到二级容器并确保可见
            action_chains.move_to_element(container).perform()
            time.sleep(1)

            try:
                # 等待“继续聊”按钮并点击
                continue_chat_button = container.find_element(By.XPATH, ".//*[contains(text(), '聊一聊')]")
                action_chains.move_to_element(continue_chat_button).click().perform()
                time.sleep(1)

                # 等待聊天窗口并点击 SVG 按钮
                chat_window = wait.until(EC.presence_of_element_located((By.CLASS_NAME, "__im_basic__root")))
                svg_button = chat_window.find_element(By.CSS_SELECTOR, ".__im_basic__contacts-title svg")
                action_chains.move_to_element(svg_button).click().perform()
                time.sleep(1)
            except Exception as e:
                print("在处理二级容器时出错:", str(e))

        # 翻页逻辑
        try:
            # 检查是否为禁用状态
            if "aria-disabled" in next_page_button.get_attribute("outerHTML"):
                print("已到达最后一页,退出循环")
                break

            pagination_box = wait.until(EC.presence_of_element_located((By.CLASS_NAME, "list-pagination-box")))
            next_page_button = pagination_box.find_elements(By.TAG_NAME, "li")[-1]

            action_chains.move_to_element(next_page_button).click().perform()
            time.sleep(2)
        except Exception as e:
            print("翻页时出错:", str(e))
            break

finally:
    driver.quit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值