iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python selenium滑动验证防检测
  • 804
分享到

python selenium滑动验证防检测

pythonselenium 2023-01-31 08:01:23 804人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目标网站:aliexpress(全球速卖通)阿里国际站登录url : https://login.aliexpress.com/ python selenium 输入用户名,密码 拖动滑块验证,因为这个不涉及到缺口,理论上是很简单的配置好s

目标网站:aliexpress(全球速卖通)阿里国际站

登录url : https://login.aliexpress.com/

image.png


python selenium 输入用户名,密码 拖动滑块验证,因为这个不涉及到缺口,理论上是很简单的

配置好selenium的环境:

pip install selenium

下个对应Google浏览器版本的chromedriver驱动,放在Python安装目录下(win环境)

image.png

第一次尝试的代码:

from selenium import WEBdriver
import time
from selenium.webdriver import ActionChains


def selenium_login_alibaba(self, url):
    option = webdriver.ChromeOptions()
    option.add_argument('--start-maximized')
    browser = webdriver.Chrome(chrome_options=option)
    browser.delete_all_cookies()
    browser.get(url)
    try:
        # 隐式等待
        time.sleep(2)
        browser.implicitly_wait(20)
        time.sleep(0.1)
        browser.find_element_by_xpath("//input[@id='fm-login-id']").send_keys('username')
        time.sleep(0.2)
        browser.find_element_by_xpath("//input[@id='fm-login-passWord']").send_keys('password')
        time.sleep(0.3)
        # 获取滑块长,宽
        button = browser.find_element_by_xpath("//span[@id='nc_1_n1z']")
        small_sliding = button.size
        # 获取整个div的长,宽
        big_sliding = browser.find_element_by_xpath("//span[@class='nc-lang-cnt']").size
        # 滑动的距离
        sliding_distance = big_sliding.get('width') - small_sliding.get('width')
        print(sliding_distance)
        ActionChains(browser).click_and_hold(button).perfORM()
        for i in [99, 87, 51, 59]:
            ActionChains(browser).move_by_offset(xoffset=i, yoffset=0).perform()
            time.sleep(random.random())
        ActionChains(browser).release().perform()
        time.sleep(1)
        browser.find_element_by_xpath("//button[@class='fm-button fm-submit password-login']").click()

效果如下:

test.gif


验证失败了,其实就是chromedriver被检测出来了.怎么解决呢?这里需要用一个打开exe程序的工具,对chromedriver里面的key进行更改,至于linux,mac应该也有类似工具。

(win环境工具) 下载地址: Https://pan.baidu.com/s/1SnmXcCSeE2YT3Z8-Hey7yA  提取码 : wat7


找到解压目录,打开exe.

image.png

下一步用wxmedit.exe 打开 chromedriver.exe

查找$cdc

image.png


把cdc替换成abc(随意3个什么都行,不能多写也不能少写,长度一定要对应)

替换成功后保存,保存,保存....

image.png


接下来,重新来过,更改key后的尝试:

代码如下:

from selenium import webdriver
import time
from selenium.webdriver import ActionChains


def selenium_login_alibaba(self, url):
    option = webdriver.ChromeOptions()
    option.add_argument('--disable-infobars')
    option.add_argument('--start-maximized')
    option.add_argument('user-agent="Mozilla/5.0 (compatible; MSIE 9.0; windows NT 6.1; Trident/5.0;"')
    option.add_argument('--disable-extensions')
    option.add_argument('--profile-directory=Default')
    option.add_argument("--incognito")
    prefs = {"profile.managed_default_content_settings.images": 2}
    option.add_experimental_option("prefs", prefs)
    option.add_experimental_option('excludeSwitches', ['enable-automation'])
    browser = webdriver.Chrome(chrome_options=option)
    browser.delete_all_cookies()
    browser.get(url)
    try:
        # 隐式等待
        time.sleep(2)
        browser.implicitly_wait(20)
        time.sleep(0.1)
        browser.execute_script('Object.defineProperties(navigator,{webdriver:{get:()=>false}})')
        browser.find_element_by_xpath("//input[@id='fm-login-id']").send_keys('username')
        time.sleep(0.2)
        browser.find_element_by_xpath("//input[@id='fm-login-password']").send_keys('password')
        time.sleep(0.3)
        # 获取滑块长,宽
        button = browser.find_element_by_xpath("//span[@id='nc_1_n1z']")
        small_sliding = button.size
        # 获取整个div的长,宽
        big_sliding = browser.find_element_by_xpath("//span[@class='nc-lang-cnt']").size
        # 滑动的距离
        sliding_distance = big_sliding.get('width') - small_sliding.get('width')
        print(sliding_distance)
        ActionChains(browser).click_and_hold(button).perform()
        for i in [99, 87, 51, 59]:
            ActionChains(browser).move_by_offset(xoffset=i, yoffset=0).perform()
            time.sleep(random.random())
        ActionChains(browser).release().perform()
        time.sleep(1)
        browser.find_element_by_xpath("//button[@class='fm-button fm-submit password-login']").click()

效果如下: 滑动验证成功了,这种可以解决大部分的chromedriver检测机制

login.gif


欢迎加qq群交流:  198447500

--结束END--

本文标题: python selenium滑动验证防检测

本文链接: https://www.lsjlt.com/news/193555.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python selenium滑动验证防检测
    目标网站:aliexpress(全球速卖通)阿里国际站登录url : https://login.aliexpress.com/ python selenium 输入用户名,密码 拖动滑块验证,因为这个不涉及到缺口,理论上是很简单的配置好s...
    99+
    2023-01-31
    python selenium
  • python+selenium行为链登录12306(滑动验证码滑块)
    使用python网络爬虫登录12306,网站界面如下。因为网站的反爬是不断升级的,以下代码虽然当前可用,但早晚必将会不再能满足登录需求。但是知识的价值,是不容置疑的。 from s...
    99+
    2024-04-02
  • Java selenium处理极验滑动验证码示例
    要爬取一个网站遇到了极验的验证码,这周都在想着怎么破解这个,网上搜了好多知乎上看到有人问了这问题,我按照这思路去大概实现了一下。1.使用htmlunit(这种方式我没成功,模拟鼠标拖拽后轨迹没生成,可以跳过)我用的是java,我首先先想到了...
    99+
    2023-05-31
    java selenium ava
  • Java + Selenium + OpenCV解决自动化测试中的滑块验证问题
    目录1、滑块验证思路2、使用OpenCV进行图片解析2.1 OpenCV引入项目2.2 实现图片解析,计算所需距离2.3 算法解析说明3、Selenium处理滑块滑动4、最终效果最近...
    99+
    2024-04-02
  • python自动化测试之破解滑动验证码
    在Web自动化测试的过程中,经常会被登录的验证码给卡住,不知道如何去通过验证码的验证。一般的情况下遇到验证码我们可以都可以找开发去帮忙解决,关闭验证码,或者给一个万能的验证码!那么如...
    99+
    2024-04-02
  • 用selenium解决滑块验证码
    前言 因为种种原因没能实现愿景的目标,在这里记录一下中间结果,也算是一个收场吧。这篇博客主要是用selenium解决滑块验证码的个别案列。 思路: 用selenium打开浏览器指定网站将残缺块图片和背...
    99+
    2023-09-04
    selenium chrome python
  • selenium+java破解极验滑动验证码的示例代码
    摘要分析验证码素材图片混淆原理,并采用selenium模拟人拖动滑块过程,进而破解验证码。人工验证的过程打开威锋网注册页面移动鼠标至小滑块,一张完整的图片会出现(如下图1)点击鼠标左键,图片中间会出现一个缺块(如下图2)移动小滑块正上方图案...
    99+
    2023-05-30
  • python 密码验证(滑块验证)
    目录题目描述:解题思路/算法分析/问题及解决实验代码题目描述: (1)模拟登陆界面,判别用户名和密码,给出合适的提示,如果超过三次,锁定输入。用代替密码;或者最新输入显示,前面的变成...
    99+
    2024-04-02
  • django滑动验证码
    最近用django写了一个后台系统,使用的是验证码方式。但是开发人员抱怨,输入验证太麻烦,还有可能出错,太影响效率了。是否可以用滑动验证码,一拖动就可以了! 网上大部分文章,用的是极验GeeTest,需要你自己注册账号,才能使用。...
    99+
    2023-01-31
    验证码 django
  • 利用Java+Selenium+OpenCV模拟实现网页滑动验证
    目录一、需求分析二、模拟步骤1、使用selenium打开某音网页2、找到小滑块以及小滑块所在的背景图3、计算小滑块需要滑动的距离4、按住小滑块并滑动三、学习过程中比较棘手的问题1、截...
    99+
    2024-04-02
  • OpenCV结合selenium实现滑块验证码
    本次案例使用OpenCV和selenium来解决一下滑块验证码 先说一下思路: 弹出滑块验证码后使用selenium元素截图将验证码整个背景图截取出来 将需要滑动...
    99+
    2024-04-02
  • selenium+opencv实现滑块验证码的登陆
    目录环境selenium登录网站requests抓取验证码图片OpenCV识别缺口位置模拟拖动滑块脚本示例:很多网站登录登陆时都要用到滑块验证码,在某些场景例如使用爬虫爬取信息时常常...
    99+
    2023-05-15
    selenium opencv滑块验证码 opencv滑块验证码
  • 利用Java+Selenium+OpenCV模拟如何实现网页滑动验证
    本篇文章给大家分享的是有关利用Java+Selenium+OpenCV模拟如何实现网页滑动验证,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。目前很多网页都有滑动验证,目的就是防...
    99+
    2023-06-26
  • 怎么用Python破解滑动验证码
    本篇文章给大家分享的是有关怎么用Python破解滑动验证码,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。相信大家在登录某些网站的时候,都会遇到请输入验证码的状态,比如在哔哔哔哔...
    99+
    2023-06-02
  • 【flutter滑动拼图验证码】
    Java后台使用aj_captcha插件,提供/captcha/get(获取captcha底图和拼块图片)、/captcha/check(验证拼图偏移量)这两个接口。并且这个插件在GitHub上有源码。 1.先准备好aj_captcha的...
    99+
    2023-08-19
    flutter
  • Python破解极验滑动验证码详细步骤
    目录极验滑动验证码实现位移移动需要的基础知识对比两张图片,找出缺口获得图片按照位移移动详细代码极验滑动验证码 以上图片是最典型的要属于极验滑动认证了,极验官网:http://www...
    99+
    2024-04-02
  • vue实现滑动验证条
    本文实例为大家分享了vue实现滑动验证条的具体代码,供大家参考,具体内容如下 效果 代码 VerifySlider.vue <template>   <div ...
    99+
    2024-04-02
  • 用selenium解决滑块验证码的实现步骤
    目录前言实现步骤1. 用selenium打开浏览器浏览指定网站1.1 找到chromedriver.exe的路径1.2 代码2.将残缺块图片和背景图片下载到本地2.1 找到图片位置2...
    99+
    2023-02-14
    selenium 滑动验证码 selenium 滑块验证 滑块验证码自动识别
  • Python破解极验滑动验证码的示例分析
    这篇文章将为大家详细讲解有关Python破解极验滑动验证码的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。极验滑动验证码以上图片是最典型的要属于极验滑动认证了,极验官网:http://www.ge...
    99+
    2023-06-15
  • python自动化操作之动态验证码、滑动验证码的降噪和识别
    目录前言一、动态验证码 二、滑动验证码三、验证码的降噪四、验证码的识别总结前言 python对动态验证码、滑动验证码的降噪和识别,在各种自动化操作中,我们经常要遇到沿跳过验...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作