使用python登录boss 并自动投递简历打招呼

使用的是 selenium4的 和3的版本语法有点出入 但是大差不差 g功能已完善,还剩下一些小细节 会持续更新 已经完结了 不会再更新了 可以用反正

from selenium import webdriver
import time
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.common.action_chains import ActionChains
driver = webdriver.Chrome()
option = webdriver.ChromeOptions()
option.add_experimental_option("detach", True)
# 忽略证书错误
option.add_argument('--ignore-certificate-errors')
# 忽略 Bluetooth: bluetooth_adapter_winrt.cc:1075 Getting Default Adapter failed. 错误
option.add_experimental_option('excludeSwitches', ['enable-automation'])
# 忽略 DevTools listening on ws://127.0.0.1... 提示
option.add_experimental_option('excludeSwitches', ['enable-logging'])
# 获取driver对象, 并将配置好的option传入进去 运行结束不关闭窗口
driver = webdriver.Chrome(options=option)
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,"/html/body/div/div/div[2]/div[2]/div[2]/div[1]/div[2]/div/span/div").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("傻逼 中文都看不懂 输入数字,还用个屁软件 滚啊")       
# 等待登录后的页面加载完成
# print(driver.current_url)
# time.sleep(10)
# title_contains     网页标题是否包含特定内容,如果是返回True,否则返回False  显示等待
WebDriverWait(driver, 10).until(EC.title_contains("BOSS直聘"))
# 等待重定向,通常是检查页面标题或其他特定元素的出现
# WebDriverWait(driver, 10).until(EC.title_is("BOSS直聘")) 
# print (driver.title)
# 或者使用其他条件,例如EC.presence_of_element_located((By.ID, "some_element_on_redirected_page"))
 
# 打印当前路径

# 尝试直接跳转
# driver.get("https://www.zhipin.com/shenzhen/?sid=sem_pz_bdpc_dasou_title")
# 判断元素是否存在
handles = driver.window_handles          #获取当前浏览器的所有窗口句柄
driver.switch_to.window(handles[-1]) 
driver.get("https://www.zhipin.com/web/geek/job-recommend")
# test_element = driver.find_element(By.XPATH,"/html/body/div[1]/div[1]/div/div/div[1]")
# 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,"/html/body/div[1]/div[2]/div[1]/div/div[1]/a[3]/span").click()
# 获取职位列表
list_tab =driver.find_elements(By.XPATH,"/html/body/div[1]/div[2]/div[2]/div/div/div[1]/ul/li")
# print(list_tab)
print("则是长度")
len(list_tab)
# 开始循环
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,"/html/body/div[1]/div[2]/div[2]/div/div/div[1]/ul/li")
        time.sleep(2)
        
    else:
        print("遮罩层没有显示")
    
 

    # alert = driver.switch_to.alert
    # print(alert.text)
    # # 接受弹出框
    # alert.accept()
    # driver.find_element(By.CLASS_NAME,"op-btn op-btn-chat").click()
    # driver.find_element(By.CSS_SELECTOR,(".op-btn .op-btn-chat")).click()


        # helloNamw = input("请输入招呼语:")
        # # 输入打招呼语句
        # driver.find_element(By.XPATH,"/html/body/div[1]/div[2]/div/div/div/div/div[2]/div[3]/div/div[2]").send_keys(helloNamw)
        # # 点击确定
        # driver.find_element(By.XPATH,"/html/body/div[1]/div[2]/div/div/div/div/div[2]/div[3]/div/div[3]/button").click()
        # print(list_tab[i])

# except:
#     print('异常说明')



















  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值