目录

1.前提和大概思路概述

2. 转换思路selenium和验证滑块图片的获取处理

3.总结


1.前提和大概思路概述

只是学习的途中有一些新的发现,分享给大家,希望对你们有帮助。

凡科网的JS逆向的闭包技巧应该是典型的闭包案例,很多人都有讲解,这里只做一个粗略介绍。

正常完成逆向之后,进行模拟登录,好像是因为我的多次请求,出现了滑块验证

先要做的是拿到底图和完整图或者滑块,但凡科网的这里只能找到图片base64伪加密后的imgId和sliderId,发起对应请求想得到后解码,奈何自己实在试过一堆法子,一直请求失败,无奈下换用selenium做模拟登录,重要的还是做滑块的思路嘛(实际还是自己实力不够--)

{'success': False, 'msg': {'dealType': 1, 'capErrno': -2}}

2. 转换思路selenium和验证滑块图片的获取处理

用到的库:

from selenium.webdriver import Chrome
import time
import requests
from selenium.webdriver.common.action_chains import ActionChains
import base64
import numpy as np
import cv2 as cv

先模拟登录一下试试

    # ***中输入你的账号和密码web = Chrome()web.get('https://i.fkw.com/')time.sleep(1)web.find_element_by_xpath('//*[@id="loginCacct"]').send_keys('***')web.find_element_by_xpath('//*[@id="loginPwd"]').send_keys('***')time.sleep(1)web.find_element_by_xpath('//*[@id="login_button"]').click()time.sleep(2)

好家伙一下子就进去了,可毕竟咱们是长见识为主,所以咱拿错误的账号密码来做试验(正确的重复多次登录后也会出现)

现在的重点主要是获取到对应的图片base64编码后的数据,在进行解码,存储图片。(注意只需要base64后的数据,要对数据做一定处理)

    ImgId_str = web.find_element_by_xpath('/html/body/div[4]/div/div[2]/div/div/div[3]/div/div[1]/div[1]/img[1]').get_attribute('src')ImgId = '/' + ImgId_str.strip('data:image/jpeg;base64,')sliderId_str = web.find_element_by_xpath('/html/body/div[4]/div/div[2]/div/div/div[3]/div/div[1]/div[1]/img[2]').get_attribute('src')sliderId = 'i' + sliderId_str.lstrip('data:image/jpeg;base64,')

发现得到的这大串玩意,看起来蛮爽

开始解码,好像规则里的 整除加= 不是很有作用,我试了试加不加都可以(可能是我忽略了细节), 把滑块和底图都存储起来。

def decode_base64(strs,i):if(len(strs)%4 == 1):strs += "==="elif(len(strs)%4 == 2):strs += '=='elif(len(strs)%4 == 3):strs += '='imgdata = base64.b64decode(strs)file = open(f'{i}.jpg','wb')file.write(imgdata)file.close()

用cv.TM_CCOEFF_NORMED算法进行精度匹配,将一维位置转换为二维位置,得到x,y的坐标。

    Img_ = cv.imread('1.jpg')slider_ = cv.imread('2.jpg')result = cv.matchTemplate(Img_, slider_, cv.TM_CCOEFF_NORMED)yiwei_ = np.argmax(result)  x, y = np.unravel_index(yiwei_, result.shape)  time.sleep(2)# print(x,y)

找到滑的地方,模拟人工滑动,即可完成。(注意传输的坐标值)

    web.implicitly_wait(10)btn = web.find_element_by_xpath('/html/body/div[4]/div/div[2]/div/div/div[3]/div/div[1]/div[2]/div[1]/div')ActionChains(web).drag_and_drop_by_offset(btn, xoffset=y, yoffset=0).perform()

3.总结

对图片base64解码处理后的滑块验证,很多地方都可以优化,比如如何让匹配速度更快,模拟人工轨迹一步步滑等等。爬虫无上限,可能图片验证,滑块验证成功,账号密码正确,还是会显示验证码错误(12306目前是这样的),还有很多的selenium限制的地方。

欢迎看到这篇的你们提出宝贵意见,一起交流学习。

模拟人工轨迹参考:Python爬虫滑块验证

opencv环境安装:OpenCV-python安装教程

凡科网JS逆向后跳出的滑块验证(base64图片解码之后的破解滑块验证)相关推荐

  1. Python爬虫:利用JS逆向抓取携程网景点评论区图片的下载链接

    Python爬虫:利用JS逆向抓取携程网景点评论区图片的下载链接 1. 前言 2. 实现过程 3. 运行结果 1. 前言 文章内容可能存在版权问题,为此,小编不提供相关实现代码,只是从js逆向说一说到 ...

  2. js逆向系列:企名片,获取js逆向后的真实数据!

    一.进入企名片创业项目 我们需要爬取如下数据 首先,对该网页进行抓包,发现这些数据是通过post请求获得的. 这是网站给我们返回的数据,为什么和网页上显示的不一样呢?分析后得出,这是经过js加密后的数 ...

  3. js aes加密_某高考咨询网js逆向分析笔记

    一.某高考资讯网逆向分析 某网站的js加密分析,安全签名signsafe + HmacSHA1 + AES 一年前分析过网站数据还没有加密,最近需要获取新的数据发现原先的爬虫失效,请求和响应都经过加密 ...

  4. (JS逆向2022.04.11) 某奇艺模拟登陆(不含滑块

    文章目录 目录 文章目录 一.分析参数 二.逆向过程 ①dfp ②password ③qd_sc 三.总结 目标网站:aHR0cHM6Ly93d3cuaXFpeWkuY29tLw== 文章不做任何商业 ...

  5. python 某文书网JS逆向 登录加密算法还原

    python 某文书网登录加密还原 run(手机号,密码)运行 import base64 import requests from urllib.parse import quote from Cr ...

  6. 最新中国土地市场网JS逆向分析

    目标网址:中国土地市场网 重要说明:文章教程仅供参考学习,请勿用于非法用途,否则后果自负. 目录 一.接口参数分析 二.程序代码编写

  7. aqistudy真气网JS逆向 + 数据采集(20220801)

    说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除 作者:zhu6201976 一.目标站点分析 站点:https://www.aqistudy.cn/?mobile=false 难度系数 ...

  8. python五行代码解决滑块验证的缺口距离识别,破解滑块验证...

    目前网上关于滑块的缺口识别的方法很多,但是都不极简,看起来繁杂,各种算法的都有,有遍历的有二分法的,今天写个最简单,准确率最高的. 直接看代码: def FindPic(target, templat ...

  9. python五行代码解决滑块验证的缺口距离识别,破解滑块验证

    目前网上关于滑块的缺口识别的方法很多,但是都不极简,看起来繁杂,各种算法的都有,有遍历的有二分法的,今天写个最简单,准确率最高的. 直接看代码: def FindPic(target, templat ...

最新文章

  1. cc.tween 的call()不执行
  2. 如何用R和API免费获取Web数据?
  3. python能做软件开发吗-python代码能做成软件吗
  4. 007-SDK框架之LYWSDKInterfaceProtocol.cpp
  5. mysql数据库基本操作总结与归纳
  6. 根据年月日判断第多少天,星期几
  7. PHP数组缓存:三种方式JSON、序列化和var_export的比较
  8. php 添加 redis 扩展模块
  9. 使用boost::filesystem实现目录遍历
  10. Python 中的闭包
  11. 油田智能化远程监控系统_油田远程无线监控系统
  12. 【Linux】如何设置静态IP地址
  13. 搭建sip软电话环境
  14. 手把手教你:人脸识别的视频打码(基于opencv的人脸打马赛克)
  15. 嵌入式Linux系统优化的那些事儿
  16. STM32F103_study57_The punctual atoms(STM32 Port multiplexing and remapping configuration)
  17. win10修改用户名_忘记登录密码没有U盘怎么办?无U盘重置密码Win10篇
  18. Unhandled exception occurred whilst decorating page java.lang.ArrayIndexOutOfBoundsException: -1
  19. 游戏显示计算机处于离线,为何我电脑上登着LOL,但是掌盟上却显示游戏离线?
  20. Theme Studio(主题工作室)

热门文章

  1. 定时给ta讲笑话python3.x
  2. 干程序 身体才是本钱!
  3. java如何解决栈溢出问题_怎样解决栈溢出
  4. Redis(2)双机备份
  5. 心电图的Welch的周期图的研究测试基于Welch的周期图,进行研究庞家来图
  6. 蓝桥杯 Python 算法训练 kAc给糖果你吃
  7. Shell脚本工作原理
  8. 矩阵的定义及其相关运算
  9. 或许,这是你见过最全的TCP+UDP图解系列
  10. 公司给了IP地址如何使用(详细版)