selenium模拟登录拉勾(超级鹰)_攻城狮小周的博客-程序员宅基地

技术标签: 爬虫  selenium  测试工具  

一、打开网页

url:https://www.lagou.com/

二、关闭弹窗

 

三、点击登录

 

四、输入账号密码

 

五、勾选同意协议并登录

 六、超级鹰验证码识别

 七、判断是否登录成功与是否失败次数过多

判断是否登录成功:随机选择一个当前页面没有的元素,而成功登录页面存在的元素.

 

 源代码

 

web = Chrome()
web.get("https://www.lagou.com/")
web.find_element_by_xpath('//*[@id="changeCityBox"]/p[1]/a').click()
sleep(0.5)
# 进入登录页面
web.find_element_by_xpath('//*[@id="lg_tbar"]/div[1]/div[2]/ul/li[1]').click()
sleep(0.5)
# 切换至密码登录
web.find_element_by_class_name('change-login-type').click()
sleep(0.5)
# 输入账户密码
web.find_element_by_xpath('//div[@data-propertyname="username"]/div/input').send_keys(
            username)
web.find_element_by_xpath('//div[@data-propertyname="password"]/div/input').send_keys(
            password)
web.find_element_by_xpath('//div[@class="login-checked"]').click()
# 点击验证码
sleep(0.5)
web.find_element_by_xpath('/html/body/div[3]/div[1]/div/div/div[2]/div[3]/div[2]/div[2]/div[2]').click()
sleep(0.5)
chaojiying = Chaojiying_Client(username,password, '915491')
j = 1
while True:
# 判断是否发生异常,多次识别失败
    print(f"正在尝试第{j}次登录")
    j += 1
    try:
        web.find_element_by_xpath('/html/body//div[@class="geetest_panel_error_content"]').click()
        sleep(2)
    except:
        sleep(1)
    img = web.find_element_by_xpath(
'//div[@class="geetest_holder geetest_silver"]/div[@class="geetest_widget"]')
    # 超级鹰获取物品位置
    offset_list = chaojiying.PostPic(img.screenshot_as_png, 9004)['pic_str'].split('|')
    # 点击物品
    for i in offset_list:
        temp = i.split(',')
        x = int(temp[0])
        y = int(temp[1])
        ActionChains(web).move_to_element_with_offset(img, x, y).click().perform()
        sleep(1)
        web.find_element_by_xpath('//div[@class="geetest_panel"]/a/div').click()
        sleep(5)
        # 是否成功登录,成功登录是,is_login匹配的元素不为空
        try:
            is_login = web.find_element_by_xpath('//[@id="lg_tbar"]/div[1]/div[2]/ul/li[2]/a')
            break
        except:
            pass

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_48565410/article/details/121285917

智能推荐

linux配置ssh通过主机名进行远程登录_付明寿的博客-程序员宅基地_linux ssh 主机名

目的:实现局域网内多台机器免密登录 机器:  A机器,B机器 第一步生产公钥和秘钥 ssh-keygen -t rsa 一直按回车,知道生产完成。 第二步:将公钥拷贝到另外一台机器上,有2种方法。 方法1:使用ssh-copy-id工具,命令如下 ssh-copy-id -i .ssh/id_rsa.pub B 方法2,:先拷贝,在追加 [[email protected] ~]$ scp .ssh/id_rsa.pub hostB:~/.ssh...

idea 解决各种冲突_lisuli520zmr的博客-程序员宅基地

参考文章:https://blog.csdn.net/qq_33039699/article/details/82866785

trim函数 html,trim函数的使用方法(你会用TRIMMEAN 函数吗?)_Nate Hillick的博客-程序员宅基地

在比赛或考评过程中,为了有效计算相应的成绩,往往会去除偏差较大的成绩,那用什么函数比较便捷呢?与大家分享一个超级好用的分值统计函数即TRIMMEAN 函数。一、TRIMMEAN函数语法TRIMMEAN函数表示计算排除百思特网数据集顶部和底部尾数中数据点的百分比后取得的平均值。TRIMMEAN函数语法:= TRIMMEAN(求平均值的数组或数值区域,去除数据占的百分比)注意:如果第二参数小于0或者大...

JavaScript基础教程之字符串对象_monkeyfly007的博客-程序员宅基地

Write By Monkeyfly以下内容均为原创,如需转载请注明出处。大纲:(本章主要讲字符串对象,其余的内置对象后面的文章会写到)1、内置对象简介2、获取字符串长度3、大小写转换4、截取某一字符(获取字符串中指定位置的某一字符)5、截取字符串6、替换字符串7、分割字符串8、检索字符串的位置正式开始:一、内置对象简介在JavaScri...

EMC 双活数据中心实战_m0_60091038的博客-程序员宅基地

资料目录:vplex2-SAN交换机篇-01.pptxvplex3-TCPIP网络篇-01.pptxvplex4-虚拟化集群篇-01.pptxvplex5-后端SAN存储篇-01.pptxvplex6-虚拟化网关篇-01.pptxvplex VS2系统安装-5.5-01.docx双活整体规划V2-01.xlsx1-1 双活数据中心-vmware vsphere演示篇2-1 第1课双活数据中心-数据中心篇2-2 第2-1课双活数据中心-SAN网络篇012-3 第2-2课双活数...

七星彩长奖表图_2018够力七星彩奖表_weixin_39754267的博客-程序员宅基地

2018够力七星彩奖表的界面非常的简单,所有的彩票功能都可以让用户一目了然,为用户提供各种各样的图库将表,七星彩画规律,奖表合集,让用户用户获取到非常丰富的彩票知识,所有的七星彩走势图都可以免费为用户提供,非常给力的七星彩软件,喜欢的用户快来下载吧。2018够力七星彩奖表特色1、与彩民交流论道,你也可以当码师;2、第一时间接收到开奖通知;3、以奖表形式查看往期的开奖号码;4、智能查画“图规”;5、...

随便推点

html做图片模糊效果,使用CSS制作跨浏览器的图片模糊效果_Tanki Zhang的博客-程序员宅基地

在photoshop中,我们要制作一个图片的模糊效果是非常简单的,简单的实用高斯模糊等模糊滤镜就可以完成。现在,我们可以使用CSS和SVG来着网页中实现ps级的模糊效果。页面中的图片模糊效果不可以滥用,使用不正确或过度使用的话,会使网页的用户体验度大大降低。通常模糊效果会和一个过渡效果相结合,在鼠标滑过元素时,元素会慢慢的变得清晰起来。关于IE 9+浏览器由于微软自己制定了一套IE浏览器的WEB标...

java bytebuffer 清空_java.nio.ByteBuffer 以及flip,clear及rewind区别_其事的博客-程序员宅基地

Buffer 类定义了一个可以线性存放primitive type数据的容器接口。Buffer主要包含了与类型(byte, char…)无关的功能。值得注意的是Buffer及其子类都不是线程安全的。每个Buffer都有以下的属性:capacity这个Buffer最多能放多少数据。capacity一般在buffer被创建的时候指定。limit在Buffer上进行的读写操作都不能越过这个下标。当写数据...

akka actor捕获异常并打印堆栈_20481024的博客-程序员宅基地

actor有个异常处理策略根据不同策略悬着处理actor模式1重写监听器 SupervisorStrategy 覆盖logFailure方法2重写actor的supervisorStrategy() 返回自定义的SupervisorStrategy

javaweb用哪个mysql_Javaweb(0)之MySql的使用和JDBC操作_白石菊姐姐的博客-程序员宅基地

安装MySQL请阅读:https://www.cnblogs.com/ayyl/p/5978418.htmlMySQL的图形界面 MySQL Workbench :https://www.jianshu.com/p/bba859635ae4https://www.jianshu.com/p/dc58a4efdd84学习JDBC请阅读:https://www.cnblogs.com/whgk/p/6...

git获取本地版本号_git版本控制工具(二)----本地版本库的常用操作_韧笔的博客-程序员宅基地

​【声明】欢迎转载,但请保留文章原始出处→_→【正文】在上一章节中,我们学习了关于Git最基本的用法,包括安装Git、创建版本库,以及提交本地代码。本章节中将学习更多的使用技巧。即:Git版本控制工具(一)----git的安装及创建版本库我们先要做好准备工作,将某个项目创建版本库,我这里就新建一个Android项目GitTest,创建一个版本库。打开Git Bash,进入到这个项目的根目录下,然后...

oracle停止运行,ORACLE 启动停止_weixin_39722563的博客-程序员宅基地

启动:NOMOUNT1.搜索参数文件:spfile或者init2.分配SGA3.启动后台进程4.打开alert文件和跟踪文件MOUNT1.将数据库与以前启动的实例关联2.所有控制文件是否存在且已同步;定位并打开控制文件3.通过控制文件验证数据文件和联机重做日志文件状态4.可重命名数据文件和重做日志5.启动或禁用联机重做日志文件归档6.执行完整的数据库恢复OPEN1.控制文件知道的所有数据文件存在,...

推荐文章

热门文章

相关标签