基于selenium模块自动登录boss直聘

超级鹰识别验证码操作详细.

import timefrom PIL import Image
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver import ChromeOptions, ActionChains
from selenium.webdriver.common.by import Byfrom practiceproject.spiders.chaojiying import get_coord# 定义函数,从selenium截取的整个网页图片里截取验证码区域的图片,location是验证码区域坐标,size是验证码区域大小
def get_bossyzm(location, size):try:im = Image.open('boss_login.png')rangle = (int(location['x']),int(location['y']),int(location['x']) + int(size['width']),int(location['y']) + int(size['height']),)print(rangle)frame = im.crop(rangle)# 保存到本地frame.save('boss_yzm.png')print('截取成功')except Exception as e:print('本地截取失败', e.__class__, e)# 设置chrom浏览器无头模式的参数
chrom_options = Options()
chrom_options.add_argument('--headless')
chrom_options.add_argument('--disable-gpu')
# 设置chrom浏览器无法检测到selenium的参数
option = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])# boss登录网址
url = 'https://login.zhipin.com/?ka=header-login'if __name__ == '__main__':# 不设置无头模式,便于观察driver = webdriver.Chrome(options=option)# 发起请求driver.get(url)# 窗口最大化driver.maximize_window()# 隐式等待10sdriver.implicitly_wait(5)# 输入用户名和密码driver.find_element(By.XPATH,'//form[@action="/wapi/zppassport/login/accountV2"]//div/span/input[@name="account"]').click()# 这里输入账号driver.find_element(By.XPATH,'//form[@action="/wapi/zppassport/login/accountV2"]//div/span/input[@name="account"]').send_keys('username')driver.implicitly_wait(2)driver.find_element(By.XPATH,'//form[@action="/wapi/zppassport/login/accountV2"]//div/span/input[@name="password"]').click()# 这里输入密码driver.find_element(By.XPATH,'//form[@action="/wapi/zppassport/login/accountV2"]//div/span/input[@name="password"]').send_keys('password')driver.implicitly_wait(2)# 点击生成验证码按钮driver.find_element(By.XPATH, '//div[@class="verify-init-btn"]').click()# 获取验证码图片区域坐标及大小time.sleep(3)yzm = driver.find_element(By.XPATH, '//div[@class="geetest_fullpage_click_box"]')yzm_location = driver.find_element(By.XPATH, '//div[@class="geetest_fullpage_click_box"]').locationyzm_size = driver.find_element(By.XPATH, '//div[@class="geetest_fullpage_click_box"]').size# 保存当前浏览器界面driver.save_screenshot('boss_login.png')# 使用PIL模块根据坐标和大小截取验证码图片print(yzm_location, yzm_size, '坐标,大小')get_bossyzm(yzm_location, yzm_size)# 将验证码图片发送到超级鹰,获取返回坐标result = get_coord('boss_yzm.png')# 遍历结果集分别点击对应坐标for i in result:action = ActionChains(driver)action.move_to_element_with_offset(yzm, i[0], i[1]).click().perform()# 这里使用find_element()方法点击确认按钮的话会报错无法找到元素,暂时还不知道什么原因,所以就直接根据坐标来使用动作链操作了action = ActionChains(driver)action.move_to_element_with_offset(yzm, 290, 420).click().perform()time.sleep(5)# 点击登录按钮driver.find_element(By.XPATH,'//form[@action="/wapi/zppassport/login/accountV2"]/div[@class="form-btn"]/button').click()# driver.quit()

selenium自动登录boss直聘相关推荐

  1. part1 selenium爬取BOSS直聘信息

    首先我们先梳理一下需求:想要使用的工具,想要获取的信息,以及想要保存的位置 其次可以选择常规方式书写也可以考虑面向对象的方式进行功能封装 这里采用常规方式书写 关键需要注意的点也已注释的方式写出 im ...

  2. Appium+Python实现自动投递Boss直聘简历

    一.首先安装Appium和所需要的所有环境 这里所需要的所有软件和环境,可以看我这篇博客. https://blog.csdn.net/qq_43107323/article/details/1056 ...

  3. 利用selenium爬取boss直聘

    正在通过boss直聘求职,然后见网上有需求boss直聘的职位大数据的,就简单写了一下,发现boss直聘的反爬机制还是比较友好的,首先不需要登陆就可以获取所有的职位信息,其次如果想要避过boss反爬成功 ...

  4. python爬取boss直聘源码

    说明:登录boss直聘.获取推荐牛人信息.筛选牛人,然后进行沟通,目前只能做到沟通,还不能进行继续交流. 图片验证码目前只能将验证码图片保存到本地,通过图片管理器打开之后手工输入. 一次登录后,可在会 ...

  5. BOSS直聘自动投简历聊天机器人的实现过程

    这两年疫情,公司业务越来越差,必须得准备后路了,每天睡前都会在直聘上打一遍招呼,一直到打哈欠有睡意为止...,这样持续了一周,发现很难坚持,身为一名资深蜘蛛侠,怎么能这样下去呢?于是便萌生了对BOSS ...

  6. boss直聘登录不显示服务器忙,boss直聘是怎么回事 boss直聘登录不上怎么办

    就在今天boss直聘突然蹦了,这让不少面试官和求职者们不明所以,一直之间四顾皆茫然,boss直聘怎么会突然就蹦了呢?这是怎么回事呢?具体情况如何,一起来看看了解一下吧! boss直聘是怎么回事 今天, ...

  7. Python selenium Boss直聘数据爬取(仅供学习使用)

    写在前面,因为最近刚好需要分析行业数据,又在查询时,发现了许多博主写了一些东西,但很多都已经失效了,所以写了那么一篇文章,希望能够帮到大家 注:BOSS直聘数据为js加载数据,故使用selenium ...

  8. boss直聘实现自动回复以及自动获取简历功能

    一.前言 最近得知公司有内推活动,但是本人工作繁忙,于是打算写个脚本来获取简历,赚点外快.于是针对boss直聘,写了一个脚本,用以实现自动回复以及自动获取简历功能.下面是第一个月挣的收益: 二.代码 ...

  9. 通过路径图比较BOSS直聘,智联招聘,拉勾的登录功能

    共同点: 1.都针对新用户选择手机接收验证码直接注册登录(手机接收验证码在登录的同时,对新用户来说可以同时具备注册功能,节省时间,最简单的登录注册方式). 2:都抛弃了最老式的密保问题找回密码的方式, ...

最新文章

  1. python oop求三角形面积公式_python学习日记(OOP——类的内置方法)
  2. windows-CODE注入(远程线程注入)
  3. python字符串前加r、f、u、l 的区别
  4. 2018 Multi-University Training Contest 6-oval-and-rectangle(hdu 6362)-题解
  5. asp.net小技巧:摆脱路径的困扰(二)
  6. vs点击方法跳不到对于的地方_内脏脂肪怎么测?这个方法也太方便了!| EASD 2020...
  7. 012.成型版回声服务器
  8. [导入]在vs2005中调用远程WebService(幻想曲)
  9. Android 代码重构案例
  10. wordcloud绘制词云图的方法
  11. day01学习过程笔记
  12. 老板必看:1.初创业团队没有激情,咋办? 2.小股东的选择
  13. 点云统一法线方向(未知视点)
  14. 编程也需要有大局观 新鲜出炉的大局观 了解一下
  15. 【网页特效】12 个炫酷背景特效库
  16. 官方消息:即将开始退钱
  17. Navicat连接腾讯服务器时常见错误
  18. Android 11 中文件存储(FileNotFoundException open failed: EPERM (Operation not permitted))
  19. antd给表格加上序号
  20. html5 打气球小游戏,在javascript+css3中如何实现打气球小游戏

热门文章

  1. 二十四种设计模式之策略模式
  2. Python爬虫应用场景大全
  3. 【EasyWechat】自动回复
  4. 天地图矢量数据下载_老树谷歌地图数据采集大师下载|老树谷歌地图数据采集大师 最新版1.3.0.3 下载...
  5. 基于Open3D的点云处理1-Open3D简介与安装
  6. java打印空心六边形_带文字的空心六边形。
  7. LISP 圆孔标记_原创,圆孔生成镙丝孔 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...
  8. jenkins依赖的android sdk下载安装
  9. 前端设计 最详细的div介绍+效果图+代码图
  10. 镇魂歌~Qt5容器类_1