zoukankan      html  css  js  c++  java
  • 2020年最新的过某宝滑块验证技术,Python大牛轻松搞定技术难题

    致谢:

    Charles未晞

    Charles的皮卡丘

    提供解决思路,此文实为借鉴。

    2020年最新的过某宝滑块验证技术,Python大牛轻松搞定技术难题

     

    前言:

    利用selenium模拟登录淘宝,外界传言这个确实很难过,有各种轨迹检测。

    但是我没想到淘宝的滑块验证码这么容易就能过。

    很多人学习python,不知道从何学起。
    很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
    很多已经做案例的人,却不知道如何去学习更加高深的知识。
    那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
    QQ群:1097524789

    开发工具

    Python版本:3.6.4

    相关模块:

    selenium模块;

    python内置模块。

    Chromedriver:

    自行谷歌,下载和电脑上的谷歌浏览器版本相匹配的驱动。

    selenium模块本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器;由于selenium解析执行了CSS、JavaScript所以相对requests它的性能是低下的;

    1.安装selenium

    pip install selenium

    先实例化一个webdriver.Chrome对象,用于自动化操作我们电脑里的谷歌浏览器:

    browser = webdriver.Chrome(executable_path=chromedriverpath)

    模拟点击网页左上方的"亲,请登录"以进入淘宝网的登录界面:

    2020年最新的过某宝滑块验证技术,Python大牛轻松搞定技术难题

     

    然后跳转到下面的界面:

    2020年最新的过某宝滑块验证技术,Python大牛轻松搞定技术难题

     

    刚开始居然是没有出现验证码的,是我多次试错后调试出来的。

    模拟输入账户信息:

    2020年最新的过某宝滑块验证技术,Python大牛轻松搞定技术难题

     

    # 输入用户名密码
    username_sender = driver_wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="fm-login-id"]')))
    username_sender.send_keys(username)
    password_sender = driver_wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="fm-login-password"]')))
    password_sender.send_keys(password)

    这类滑块验证码需要用户按住滑块,并将它拖动到最右边。一开始我也以为淘宝会加入一些检测手段以识别是机器还是人在操作滑块。结果发现和外界传闻的不一样,用ActionChains函数直接把滑块拖到最右边就可以验证通过了:

    try:  
    slider = browser.find_element_by_xpath("//span[contains(@class, 'btn_slide')]")
    if slider.is_displayed():
    ActionChains(browser).click_and_hold(on_element=slider).perform()
    ActionChains(browser).move_by_offset(xoffset=258, yoffset=0).perform()
    ActionChains(browser).pause(0.5).release().perform()
    except:
    pass

    最后模拟点击一下登录按钮就行了:

    # 点击登录按钮
    button = driver_wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="login-form"]/div[4]/button')))
    button.click()

    程序到这里就大功告成了,有些人就很奇怪了,为什么这么简单就可以真的实现过验证呢?其实吧就总结了一句话:纸上得来终觉浅,绝知此事要躬行!

  • 相关阅读:
    大战设计模式【5】—— 工厂方法模式
    通过spring抽象路由数据源+MyBatis拦截器实现数据库自动读写分离
    大战设计模式【4】—— 简单工厂模式
    大战设计模式【3】—— 装饰模式
    大战设计模式【2】—— 观察者模式
    大战设计模式【1】—— 策略模式
    回顾:maven配置和常用命令整理
    idea properties文件unicode码问题
    Nginx学习笔记
    tomcat添加context方式部署web应用
  • 原文地址:https://www.cnblogs.com/shann001/p/13065428.html
Copyright © 2011-2022 走看看