selenium模拟淘宝登陆,过所有验证 |
您所在的位置:网站首页 › vk注册跳过手机验证 › selenium模拟淘宝登陆,过所有验证 |
淘宝模拟登陆实现
由于淘宝使用了滑动验证码,需要进行模糊手动滑动,因此考虑使用selenium+chromedriver进行模拟登陆。 淘宝的登陆网址:https://login.taobao.com/member/login.jhtml 项目运行准备:安装python3开发环境,官网自行下载,博主版本为3.7 安装chrome游览器,下载地址:https://www.google.cn/chrome/ 安装selenium模块,在终端中输入pip3 install selenium 安装chromedriver驱动,下载地址:http://npm.taobao.org/mirrors/chromedriver/ 注意: 在下载chromedriver驱动的时候,需要与chrome游览器的版本尽量保持一致,查看chrome游览器版本方法,在谷歌游览器访问:chrome://settings/help这个网址![]() 由于selenium隐式等待进行xpath定位找不到会报错,项目中多次使用这一段代码,因此对这一部分代码进行封装,封装之后的代码如下: def xpath(self, xpath_bas): try: element = WebDriverWait(self.webdriver_obj, 10).until( EC.presence_of_element_located((By.XPATH, xpath_bas)) ) except: element = [] finally: return element 进行登录标签的定位,输入账号,密码操作 def login(self,username='', password=''): url = 'https://login.taobao.com/member/login.jhtml' self.webdriver_obj.get(url) self.xpath('//*[@id="fm-login-id"]').send_keys(username) # 定位账号输入框,并输入账号 self.xpath('//*[@id="fm-login-password"]').send_keys(password) # 定位密码输入框,并输入密码 self.xpath('//*[@id="login-form"]/div[4]/button').click() # 第一次点击登录按钮 time.sleep(5) check_yzm_span = self.xpath('//*[@id="nc_1_n1z"]') # 延时定位滑动验证码标签,避免点击登录按钮之后,出现滑动验证码,不需要验证的情况 if bool(check_yzm_span): print('登录发现滑动验证码') self.check_yzm(check_yzm_span) # 处理滑动验证码 else: print('登录未发现滑动验证码') try: frame = self.xpath('//*[@id="content"]/div/div[1]/iframe') # 定位iframe标签,由于iframe没有id,name这种唯一的属性,因此只能通过先定位,在切换实现 self.webdriver_obj.switch_to.frame(frame) # 由于手机验证页面出现了页面的嵌套,因此需要进行页面跳转到iframe下 check_phone_button = self.xpath('//*[@id="J_GetCode"]') print('登录发现手机验证码') self.check_phone_yzm(check_phone_button) # 处理手机登录验证码 except: print('登录未发现手机验证码') finally: print('登陆成功') 处理滑动验证码定位到滑块的标签
在点击登录之后,淘宝会进行身份验证,就是让你输入手机验证码,然后对验证码进行输入后,才能让你登录成功。
最后登陆成功之后的截图如下:
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |