python爬虫 scrapy+selenium+webdriver实现鼠标滑动破解阿里云盾快验证
在爬取jianshu文章的时候发现,jianshu竟然买了阿里云的盾块验证!!!很是头疼,虽然说没有其他图片匹配的那么麻烦,但是阿里云的人机验证和算法真的是顶尖的,查阅了多个资料最后没办法,才实现用webdriver模拟鼠标去通过验证
首先我们需要安装webdriver驱动和Google Chrome浏览器,驱动连接如下:
http://chromedriver.storage.googleapis.com/index.html
需要注意的是驱动版本要与浏览器版本相对应,不知道怎么找的可以看我的另一篇文章
Python爬虫scrapy+webdriver,selenium使用webdriver启动chrome出现闪退现象_WakeUpCcc的博客-CSDN博客
安装完驱动后,需要安装一个模拟鼠标的配件:pyautogui
在Terminal中输入:
pip install pyautogui
接下来就需要搭建通道了
需要注意的是,阿里的盾快验证很厉害,不要随意调用返回页面Response中的参数,否则会直接报错!!!!!!
需要配置UA和去掉浏览器的标头等:
options = webdriver.ChromeOptions()
options.add_argument('--disable-gpu')
options.add_argument('no-sandbox')
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_argument('user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36"')
然后启动本地Chrome:
driver = webdriver.Chrome(options=options)--启动浏览器
driver.wait = WebDriverWait(driver, 10, 1)
driver.maximize_window()--放大浏览器
接下来就要获取滑块的坐标了:
sizex, sizey = pyautogui.size()--创建鼠标x,y坐标pyautogui.dragTo(sizex * 0.54, sizey * 0.26, duration=sj, button='left')--duration为滑动时长,button为鼠标状态,left指按住鼠标左键pyautogui.dragRel(260, 0, duration=sj1, button='left')--第一个参数为x轴长度,第二个参数为y轴参数
阿里的算法也是很牛的,拖动滑块的时长不能写入固定值
这里采用了随机数的方法:
sj = (random.uniform(1, 3))
sj = format(sj, '.9f')
sj = float(sj)sj1 = (random.uniform(1, 4))
sj1 = format(sj1, '.9f')
sj1 = float(sj1)
最后建议验证成功后等待2~3秒,给服务器一个响应时长
验证成功后返回页面response时长即可
总结:整体来说并不是很难,只不过方法笨了点,但是也是解决了问题不是
缺点:过于依赖网络波动,网络波动较大,则会导致页面响应时间过长,或者验证失败
这种验证方法并不是百试百灵,也会有验证失败的情况
python爬虫 scrapy+selenium+webdriver实现鼠标滑动破解阿里云盾快验证相关推荐
- Python 阿里云盾滑块验证
本文仅供学习交流使用,如侵立删! 记一次阿里云盾滑块验证分析并通过 操作环境 win10 . mac Python3.9 selenium.pyautogui 分析 最近在做中国庭审公开网数据分析的时 ...
- python爬虫——scrapy+selenium爬取新浪微博及评论
本文主要对爬取过程中所用到的知识做简单总结,最后有项目链接. 一.项目简介 本项目利用python的scrapy框架+selenium模拟登陆微博来爬取带有关键字的微博及微博下面的评论(1 .2级评论 ...
- python爬虫--Scrapy框架--Scrapy+selenium实现动态爬取
python爬虫–Scrapy框架–Scrapy+selenium实现动态爬取 前言 本文基于数据分析竞赛爬虫阶段,对使用scrapy + selenium进行政策文本爬虫进行记录.用于个人爬虫学习记 ...
- Python爬虫之selenium库使用详解
Python爬虫之selenium库使用详解 本章内容如下: 什么是Selenium selenium基本使用 声明浏览器对象 访问页面 查找元素 多个元素查找 元素交互操作 交互动作 执行JavaS ...
- python爬虫之selenium,谷歌无头浏览器
python爬虫之selenium和PhantomJS 主要的内容 lenium hantomjs 无头浏览器 的懒加载 一 什么是selenium? 介绍 它是python中的一个第三方库,对外提供 ...
- Python爬虫之selenium高级功能
Python爬虫之selenium高级功能 原文地址 表单操作 元素拖拽 页面切换 弹窗处理 表单操作 表单里面会有文本框.密码框.下拉框.登陆框等. 这些涉及与页面的交互,比如输入.删除.点击等. ...
- 从入门到入土:Python爬虫学习|Selenium自动化模块学习|简单入门|轻松上手|自动操作浏览器进行处理|chrome|PART01
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- python 模拟浏览器selenium_浅谈python爬虫使用Selenium模拟浏览器行为
前几天有位微信读者问我一个爬虫的问题,就是在爬去百度贴吧首页的热门动态下面的图片的时候,爬取的图片总是爬取不完整,比首页看到的少.原因他也大概分析了下,就是后面的图片是动态加载的.他的问题就是这部分动 ...
- python爬虫——使用selenium爬取微博数据(一)
python爬虫--使用selenium爬取微博数据(二) 写在前面 之前因为在组里做和nlp相关的项目,需要自己构建数据集,采用selenium爬取了几十万条微博数据,学习了很多,想在这里分享一下如 ...
- [Python爬虫]使用Selenium操作浏览器订购火车票
这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分 [Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium) [Python爬虫]使用Python爬取静态网页-斗 ...
最新文章
- WWDC 2018:iOS 12 通知的新特性
- 前端学习(2816):原生框架目录结构
- 东北考生到南方学计算机,为啥东北考生都想去南方,而南方学生很少考东北,看看他们怎么说...
- Java 并发(入门梳理)
- 华为云企业级Redis评测第一期:稳定性与扩容表现
- HTTP协议的无状态性
- Android-图像识别项目OpenCV(4):开发思路以及问题
- Java 操作 HBase 教程
- ICEM CFD简明教程
- 修复漏洞显示连接服务器失败,服务器安全狗漏洞补丁失败怎么办
- 计算机mac地址设置路由器,路由器mac地址怎么设置
- IAR+STVP烧录程序排错
- tp5——实践前台模板引入
- 如何把Excel中表格复制粘贴到PPT中,并更改表格边框颜色
- 声音存储空间计算公式_音频文件存储容量计算
- python header是啥_Python爬虫之Header
- win7系统服务器角色向导,Windows Server2012入门-添加服务器角色和功能
- IP和MNC地址协议
- 微信开发者工具如何打开企业微信小程序
- Win系统如何取消f1打开浏览器
热门文章
- NPN、PNP型三极管的常见问题
- android9自动安装权限9,按键精灵所有者读写权限安卓9.0如何获取?设置
- 【Hadoop】Hadoop Snappy 安装 (Ubuntu 16.04)
- XRecycleView (Scrapped or attached views may not be recycled)
- Tableau实战 网站客户细分仪表盘
- 浅谈如何在优麒麟22.04中使用Eigenstrat和Plink工具生成类23andMe格式原始数据
- 1575万美元!2023科学突破奖揭晓,AlphaFold、量子计算等突破斩获殊荣
- require与import的区别和使用(CommonJS规范和es6规范)
- 关于错误“未能加载文件或程序集”的错误的若干处理办法——对GAC的简单应用
- aardio学习记录-1.基本概念和自定义类的调用