大概流程

1、进入页面点击同意按钮。
2、得到滑块和滑块区域的xpath
3、定位滑块,设置按住事件,进行拖动
4、xpath定位汉字图片,获取屏幕截图,保存本地
5、超级鹰识别图片返回汉字对应的坐标,移动至坐标位置进行点击。需注意selenium 4.3版本在移动坐标时有问题,建议使用4.0版本。
关于selenium 和超级鹰的用法不做详细步骤。

工具版本

selenium  4.0.0
谷歌浏览器和驱动版本   111.0.5563.111

代码记录

# coding = utf-8
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from app.Chaojiying_Python.chaojiying import Chaojiying_Client
from selenium.webdriver.support.ui import WebDriverWaitUSERNAME = 'xxxxxxxx'
PASSWORD = 'xxxxxxxx'
SOFTID = xxxxx
class XieCheng:def __init__(self):# 打开chrome浏览器self.d = webdriver.Chrome()self.chaojiying = Chaojiying_Client(USERNAME, PASSWORD,SOFTID)self.wait = WebDriverWait(self.d,20)self.action = ActionChains(self.d)  # 创建动作链对象self.d.maximize_window()self.d.implicitly_wait(10)self.action = ActionChains(self.d)self.url = 'https://passport.ctrip.com/user/reg/home'def open_url(self):# 打开携程网注册页面self.d.get(self.url)# 点击同意并继续self.d.find_element(By.XPATH, '//div[@class="pop_footer"]/a[@class="reg_btn reg_agree"]').click()# 定位到滑块按钮元素ele_button = self.d.find_element(By.XPATH, '//*[@id="slideCode"]/div[1]/div[2]')# 打印滑块按钮的宽和高print('滑块按钮的宽:', ele_button.size['width'])print('滑块按钮的高:', ele_button.size['height'])# 定位到滑块区域元素ele = self.d.find_element(By.XPATH, '//div[@class="cpt-bg-bar"]')# 打印滑块区域的宽和高print('滑块区域的宽:', ele.size['width'])print('滑块区域的高:', ele.size['height'])# 按住滑块不动self.action.click_and_hold(ele_button).perform()# 拖动滑块self.action.drag_and_drop_by_offset(ele_button, ele.size['width'], ele.size['height']).perform()# action.move_by_offset(xoffset=ele.size['width'], yoffset=0).perform()def downloadimg(self):img_element = self.d.find_element(By.XPATH,'//*[@id="slideCode-choose"]/div[2]')img_element.screenshot('img.png')return img_elementdef get_position(self):img_element = self.downloadimg()im = open('img.png', 'rb').read()  # 以二进制的方式读取验证码result = self.chaojiying.PostPic(im, 9005)['pic_str']  # 9005获取验证码3-5坐标字典,并取出坐标值print(result)for index in result.split('|'):  # 以"|"进行分割,得到一个列表,并循环出每一个字的坐标x = index.split(',')[0]  # 得到x轴的坐标y = index.split(',')[1]  # 得到y轴的坐标print(x,y)self.action.move_to_element_with_offset(img_element, int(x), int(y)).click().perform()# image:验证码的元素框;x:验证码的横轴;y:验证码的纵轴time.sleep(1)self.d.find_element(By.XPATH,'//*[@id="slideCode-choose"]/div[2]/div[4]/a').click()if __name__ == '__main__':api = XieCheng()api.open_url()api.get_position()

selenium 超级鹰 通过携程滑块和汉字验证码相关推荐

  1. 携程滑块,点选文字识别

    文章目录 code_datawhale05_xiecheng.py reslut code_datawhale06_bzhan_login.py result END code_datawhale05 ...

  2. 模拟登录12306(selenium+超级鹰)

    最近迷上了用selenium去登陆各大网站,别说selenium真挺好用,可以轻松搞定ajax动态加载的网页,不用很费劲的去抓包查找.咳咳-跑题了,回归正题. 这次用selenium去登录12306网 ...

  3. Selenium爬携程酒店评论+jieba数据分析实战

    如果你想使用最少的时间相对客观的了解一样事物,那么最好的方式就是快速收集大量的关于它的评价,然后迅速地找出这些评价中的关键信息. 而这道题目,有两个特别大的难点:1.如何快速收集大量的评论:2.如何迅 ...

  4. 破解携程中文验证码爬取机票价格数据

    国内机票预定APP携程处于垄断地位,但是携程有反爬虫策略,对于密集的查询请求会要求验证,验证操作有两次,一次是拖动验证,一次是点选中文,selenium+webdriver可以轻松绕过这一反爬虫设置. ...

  5. 携程手机版机票数据添加代理

    目录 携程手机版国内机票数据 携程手机版国际机票数据 携程网页版国内机票数据 携程网页版国际机票数据 去哪儿网手机版机票数据 去哪儿网网页版机票数据 携程手机版机票数据添加代理 去哪儿网网页版机票数据 ...

  6. Python 识别携程中文验证码(95%正确率)并自动登陆携程+图灵图像验证码识别平台

    这两天有一个业务需求,需要登陆不同的携程账号获取订单信息,但是由于携程有验证码检测机制,而且是个中文验证码比较难识别,试了几家人工打码平台,要么贵,要么延时高,要么没办法24小时运行.最后总算让我找到 ...

  7. 『python爬虫』26. selenium与超级鹰处理复杂验证码的处理(保姆级图文)

    目录 1. 图片选择类验证码 2. 滑块验证码 3. 滑块出错,不加载 总结 欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 1. 图片选择类验证码 ...

  8. JAVA爬虫爬取携程酒店数据selenium实现

    在爬取携程的时候碰到很多的壁垒,接下来分析所有过程 1.根据以往经验最初想到用jsoup去解析每个HTML元素,然后拿到酒店数据,然后发现解析HTML根本拿不到id为hotel_list的div,所以 ...

  9. 无理由退房退机票,做携程超级会员就是这么任性

    行程有变,想退掉预订的酒店?旅行计划调整,想退掉已经订好的机票? 这些都是旅行达人和商务人士出门经常碰到的问题,也是旅行中的常见槽点和痛点. 近日,携程高调宣布再度升级其"超级会员权益&qu ...

最新文章

  1. 打开sql server 验证
  2. 性能计数器取网卡流量
  3. Netty防止内存泄漏措施
  4. 实用的IDE工具助力你学习Python!
  5. 华为手机如何调时间显示_华为手机照片如何出现时间地点天气,教你30秒,一学就会...
  6. 【并查集】【最小生成树】【贪心】给水(jzoj 2015)
  7. javascript 变量作用域
  8. 会买单吗?李楠创办的怒喵科技发布新品牌了,推出潮流无线桌面产品
  9. slf4j + log4j2配置日志引擎
  10. ADO.NET远程访问Access数据库的连接字符串
  11. Javascript_备忘录3
  12. 关于WINDOWS超级终端的使用来调试MODEM,串口.
  13. 屏幕录像专家v2016破解版
  14. Sqlmap全参数详解
  15. 个人管理 - 第四代时间管理
  16. zabbix调用sendsms.py脚本,发送短信
  17. OC中的Block属性
  18. 问题:网络地址192.168.10.0;子网掩码255.255.255.128(/25)
  19. tushare单个股票过去五年的数据整理与预测
  20. Matlab 代码 转成 C/C++ 代码

热门文章

  1. 当前的几种开源游戏服务端介绍
  2. 有没有可以在手机上使用的钢琴键盘模拟器呢
  3. CC2640之OAD固件升级(内置Flash)
  4. Keras深度学习实战(38)——图像字幕生成
  5. 集成学习与模型融合(kaggle-Elo Merchant Category Recommendation)
  6. 批量处理 how to batch convert the cr2 files to jpg
  7. ORA-28001: the password has expired 密码超时解决办法
  8. sqlserver 获取星期一到星期日的数据
  9. 新电脑怎么测试软件,鲁大师如何测试新电脑 鲁大师测新机方法
  10. 极兔快递单号查询 快递鸟API接口对接指南-极兔速递