介绍
本篇文章给大家分享的是有关怎么在python中使用硒登录QQ邮箱,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
<强> 1.1登录强>
#, coding =, utf - 8 得到selenium import  webdriver import 时间 import 随机 得到utils import  DbUtil import uuid 得到selenium.webdriver import  ActionChains 得到PIL import  Image as  Im import 操作系统 import cv2 import numpy  as np import 请求 得到pymongo import  MongoClient 1.1 #,代码,目前只用到webdriver和时间库,其他的会在下面用的到 #,u 帐号p 密码 def 电子邮件(u, p): ,#定义QQ邮箱的登录页=,start_url “https://mail.qq.com" ,#这里我用的是火狐浏览器。很多人喜欢定义成driver 我喜欢定义成浏览器=,,browser  webdriver.Firefox () ,#休息2 s ,time . sleep (2) ,#使用火狐浏览器打开QQ邮箱的登录页 ,browser.get (start_url) ,#休息2 s(这个睡眠时间因网速而异,部分的错误就是因为网站还没打开你就开始获取网页的标签进行操作,当然就获取不到然后报错了~) ,time . sleep (2) ,#切换frame.login_frame是该登录窗口iframe的id ,browser.switch_to.frame (“login_frame") ,#点击选择帐号密码登录 ,browser.find_element_by_id (“switcher_plogin") .click () ,#休息 ,time . sleep (1) ,#输入帐号,将u填入身份证是你的输入框 ,browser.find_element_by_id (“u") .send_keys (u) ,time . sleep (1) ,#输入密码,将p填入id是p的输入框 ,browser.find_element_by_id (“p") .send_keys (p) ,time . sleep (1) ,#点击登录,登录按钮的id是login_button ,browser.find_element_by_id (“login_button") .click () #,主方法 if __name__ ==, & # 39; __main__ # 39;: ,#为了实现异地登录,随意定义一个QQ号(反正我们的目的是滑动解锁0.0),如果直接提示帐号密码错误没有验证码的话就再随意编一个QQ号 ,电子邮件(u=?23456789“,, p=癮bcdefg")
运行一下应该就能看到我们要的滑动验证码了
<强> 1.2获取验证码图片强>
我们在运行完上面的代码之后验证码应该出来了,首先我们需要将其中的拼图和完整图片下载下来用于后面的距离计算。
我们先F12然后
点击左侧的小拼图查看元素↓
点击大拼图查看元素↓
以上选中的这两张图片就是我们后面要用来计算滑动距离的图片
要获取到图片需要两步:
<强> 1,获取到图片的链接强>(上面已经能看到了)
<强> 2,根据链接将图片下载到本地处理强>
回到刚才的代码我们需要先加个判断来识别是否出现了滑动验证码(有的时候会直接提示帐号密码错误)
只要判断这个“安全验证“的提示就可以说明是有滑动验证码的,反之没有。
#,代码1.1省略....↑ #,代码1.2.1 #,判断是否出现了滑动验证码 试一试: ,#先切换回帧到默认 ,browser.switch_to.default_content () , ,#将画面切换到,login_frame(也就是之前的登录框架) ,browser.switch_to.frame (“login_frame") , ,#根据xpath获取到含有安全提示的标签然后将其中文本获取到打印出来,如果异常就进除了块,说明没有验证码=,,code  browser.find_element_by_xpath (& # 39;//* [@ id=皀ewVcodeArea"]/div [1]/div/div [2] & # 39;)。text ,打印(代码) except : ,打印(& # 39;无安全验证码! & # 39;)
这块代码写完我们基本上实现了<强>登录强>和<强>判断是否出现滑动验证码强>的功能,不多BB我们<强>继续↓强>
出现滑动验证码的时候我们先点击刷新