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

在这里插入图片描述

大概流程

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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/54152.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试中经常问到的几个问题,快来看看能答对几道吧

写在前面 CSDN话题挑战赛第1期 活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f 参赛话题:前端面试宝典 话题描述:欢迎各位加入话题创作得小伙伴,如果我没有猜错得话,我觉得你是应该同…

速卖通大卖不会告诉你的技巧,学会这招出单很简单

如今,无论是在实体店还是在网上,“流量”一词都很熟悉,流量越大,交易量自然就越大。从事国内电商的朋友都知道,要把网店做好,首先要做好店铺信誉,这样才能有更多的流量。尽管速卖通是一个重产品…

速卖通新手卖家入门知识问答

美国有亚马逊,中国有速卖通。我们都知道“十年一剑速卖通”,自2010年速卖通成立并高速发展,至今已覆盖全球220个国家和地区,支持18种语言,支持全球51个国家的当地支付方式,海外成交卖家突破1.5亿。速卖通已…

速卖通正式推出全托管,卖家竞争进入新阶段

全托管来了,卖家就能安心做甩手掌柜吗? 正式推出全托管 显而易见,越来越多的平台正在转向全托管模式。 近日,速卖通在2023年度商家峰会上,正式推出了全托管服务模式。官方表示,托管是对速卖通平台商家服…

【速卖通】 AliExpress(速卖通)关键词搜索结果采集

采集场景 在AliExpress(速卖通) 首页中 http://www.aliexpress.com 中输入关键词,采集关键词搜索后得到的商品列表信息。 采集字段 关键词、标题、商品id、商品图片地址、商品详情链接、价格、免费退送货、星级、已出售数量、店铺名 采集结果 采集结果可导出为E…

速卖通正在运营的店铺,流量突然下滑卖家该怎么做

现在速卖通卖家的生意多少都变差了,不管承不承认,这都是客观原因。人人都说速卖通正在转型,本来是打算给予精品店铺、风格化店铺一定的扶持,逐渐品牌化。而照现在看来之前的打算还没落实,又紧急推出大卖的天堂AE-MALL&…

121.Android 简单的人工智能聊天项目,chatAi,AI聊天项目,GPTAi

//首页xml布局代码&#xff1a; <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"mat…

3 名离职员工窃取公司游戏源码,半年狂赚 1.5 亿,网友:“自立门户也不带这样玩的!”...

整理 | 朱珂欣 出品 | CSDN程序人生&#xff08;ID&#xff1a;coder_life&#xff09; 对于游戏公司而言&#xff0c;安全、抄袭问题总是「防不胜防」。 不仅要抵御黑客攻击、排查自身的安全漏洞&#xff0c;还要警惕员工拿着代码跑了&#xff01; 近日&#xff0c;据上海市…

揭秘 “移动云杯”移动赛道——算网应用自定义创新子赛道

【赛事介绍】 随着我国“东数西算”工程的推进&#xff0c;算力网络正成为国家、社会、产业发展的战略要求&#xff0c;在数字中国建设进程中发挥着重要引擎作用。中国移动作为我国数字经济发展的“排头兵”&#xff0c;锚定“世界一流信息服务科技创新公司”核心定位&#xff…

揭秘“移动云杯”行业赛道——行业应用创新子赛道

【赛事介绍】 为助力中国移动算力网络的发展&#xff0c;加速移动云向算力网络演进过程&#xff0c;促进基于移动云产品能力的创新应用与解决方案的丰富&#xff0c;中国移动联合多家单位举办第二届“移动云杯”算力网络应用创新大赛&#xff0c;为算力网络的战略落实提供创新平…

国内下载谷歌插件的免费方法

插件功能让Chrome浏览器变得更加优秀&#xff0c;极大地提升了用户体验&#xff0c;给用户一种定制式的在线服务。但是在国内&#xff0c;用户无法登陆谷歌商店&#xff0c;在不能科学上网的情况下&#xff0c;想要下载插件的方法是使用第三方插件下载器。 扩展坞是一个很方便…

Android 点击 App icon 发生了什么?

Gityuan – startActivity启动过程分析 点击桌面App图标&#xff0c;Launcher进程采用Binder IPC向system_server进程发起startActivity请求&#xff1b;system_server 进程接收到请求后&#xff0c;向 zygote 进程发送创建进程的请求&#xff1b;Zygote 进程 fork 出新的子进…

Android开发中app图标更换

最近学习Android开发 然后自己有点菜 一遇到问题就没办法自己解决只能百度解决 然后我在如何修改app图标遇到了一些问题 下面是我解决问题的一些过程 写下来以后自己好看 首先网上的教程是 复制一张图片&#xff08;png格式&#xff09;到资源文件夹下面的drawable目录下&am…

QT for Android设置APP应用图标和名称

APP应用图标 在工程目录中&#xff0c;创建一个Android_sources文件夹&#xff0c;与xxx.pro文件在同一目录下 在QT界面中&#xff0c;打开xxx.pro文件&#xff0c;在最后一行添加ANDROID_PACKAGE_SOURCE_DIR $$PWD/android-sources 在工程文件夹下的Android-build文件中&am…

直播推流方案

一、关键特性 1&#xff09;输入输出接口支持MIPI/BT1120/LVDS输入&#xff0c;MIPI/LVDS输出 2&#xff09;网络接口支持千兆网口、WiFi、4G/5G 3&#xff09;输入输出格式最高支持1080p60Hz&#xff08;RV1126最高4Kp30Hz&#xff09; 4&#xff09;视频编码支持H.264和H.26…

不止直播:腾讯云直播MLVB 插件除了推流/拉流还有哪些亮眼功能

在之前几篇的文章中&#xff0c;我们介绍了腾讯云移动直播插件MLVB的一些基础概念&#xff08;&#xff09;以及移动直播控件可以拓展的直播场景&#xff08;&#xff09;&#xff0c;今天就来分享MLVB插件除了直播的基础推拉流功能以外还有哪些功能来帮助直播APP和小程序拉新和…

腾讯云直播开发日记(三) 聊天室-直播转码-连麦混流

腾讯云直播开发日记(三) 直播的时候,用户还是需要和主播互动的,我们当前的互动就只有刷礼物,那没钱说礼物怎么搞? 不得让他们吹水? 所以我们需要做一个聊天室, 这个话自己也能做, 系统上线迫在眉睫&#xff0c;工作刻不容缓&#xff0c;所以我们一致决定使用最强能力 买。 …

直播推流拉流概念介绍

先上图 推流&#xff0c;指的是把采集阶段封包好的内容传输到服务器的过程。介绍一下目前有主流的推送协议&#xff0c;以及各自的优缺点。 RTMP RTMP是Real Time Messaging Protocol&#xff08;实时消息传输协议&#xff09;的缩写&#xff0c;是Adobe公司为Flash/AIR平台和…

做直播拉流 , 准备的一些资料,亲测有效

知识性的内容 比较详细的说了说推流的过程 &#xff1a; https://www.jianshu.com/p/447df915984e 推流拉流的&#xff1a;https://www.jianshu.com/p/e516a5b31480 对比 hls 和 rtmp的&#xff1a;http://www.samirchen.com/ios-rtmp-vs-hls/ 直播原理&#xff1a;https:/…

使用软件实现直播推流

rtmp媒体服务器&#xff1a;这里使用srs &#xff1a;https://github.com/ossrs/srs 首先clone到本地&#xff0c;进入到trunk目录&#xff1a; git clone https://github.com/ossrs/srs.git cd srs/trunk ./configure 最后执行&#xff1a;make 执行成功后&#xff0c;就…