https://member.zjtcn.com/common/login.html
一般来说我们与页面的交互可以使用
Webelement
的方法来进行点击等操作。
但是,有时候我们需要一些更复杂的动作,类似于拖动,双击,长按等等。
这时候就需要用到我们的
Action Chains
(动作链)了。使用 selenium 去实现。
from selenium import webdriver
url='https://member.zjtcn.com/common/login.html'
browser=webdriver.Chrome()
browser.get(url)
slider=browser.find_element_by_css_selector('.ui-slider-btn')
// 使用动作链
action=webdriver.ActionChains(browser)
action.click_and_hold(slider).perform() //perform()是按住不放的意思
action.move_by_offset(300,0)
action.release().perform()
http://www.geetest.com/。
现在极验验证码已经更新到了 3.0 版本,截至 2017 年 7 月全球已有十六万家企业正在使用极验,每天服务响应超过四亿次,广泛应用于直播视频、金融服务、电子商务、游戏娱乐、政府企业等各大类型网站
对于这类验证,如果我们直接模拟表单请求,繁琐的认证参数与认证流程会让你蛋碎一地,我们可以用 selenium 驱动浏览器来解决这个问题,大致分为以下几个步骤
1、输入用户名,密码
2、点击按钮验证,弹出没有缺口的图
3、获得没有缺口的图片
4、点击滑动按钮,弹出有缺口的图
5、获得有缺口的图片
6、对比两张图片,找出缺口,即滑动的位移
7、按照人的行为行为习惯,把总位移切成一段段小的位移
8、按照位移移动
9、完成登录
步骤大致是将缺口图和原图进行对比获取缺口的横坐标,并使用计算完成拖动轨迹模拟,之后使用 selenium 按照轨迹滑动完成缺口的拼接。
这一类方法的优点是门槛低,原理简单,缺点是完成滑动耗时较长,成功率无法估计(同一轨迹计算规则使用多次后成功率迅速下降)
http://www.cnbaowen.net/api/geetest
位移移动相当于匀变速直线运动,类似于小汽车从起点开始运行到终点的过程(首先为匀加速,然后再匀减速)。
其中 a 为加速度,且为恒量(即单位时间内的加速度是不变的),t 为时间
https://github.com/duziea/Python-imitate-login
https://blog.csdn.net/qq_34192032/article/details/101059706
欢迎各位看官及技术大佬前来交流指导呀,可以邮件至 [email protected]