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爬取静态网页-斗 ...
最新文章
- VUE 笔记(持续更新中...)
- 光伏电站或成辅助服务市场“输家”
- 系列教程丨用 Docker 探索开源软件 —— PostgreSQL(一)
- dxf转pdf linux,4个最好的PDF转DXF格式的在线转换器
- 【Python 2 到 3 系列】 print 是函数
- SAP CRM my task 6个roundtrip的原理讲解
- 缴纳满15年养老保险退休金每月1200块钱左右,值得缴吗?
- Dapr + .NET 实战(十三)跨语言开发
- 2020,你收获了什么?又失去了什么?
- 使用Magicodes.SwaggerUI快速配置SwaggerUI以及设置API分组
- 结构型模式——适配器模式
- java面试题36 已知如下的命令执行 java MyTest a b c 请问哪个语句是正确的? ( )
- win10用计算机分区,新电脑win10怎样给系统硬盘分区?给新win10电脑分区硬盘的方法...
- java 随机获取4个数字_java入门-验证码 今天查到的一个简单随机生成4位数字的验证码-jsp...
- 出售 Mac 时做好哪些准备?
- 最全最新cpu显卡天梯图_电脑显卡天梯图2019排行榜——2019显卡CPU天梯图排行榜...
- 盖洛普Q12在团队中的应用
- spark的作业提交流程
- sudo su与su的区别
- C/C++中的 void*
热门文章
- vue中公告消息横向无缝循环滚动
- 已解决:网易邮箱smtphz.qiye.163.com在阿里云环境发不出邮件的问题
- 海洋cms宝塔定时linux,海洋cms设置宝塔自动采集教程
- 礼金记账本安卓_份子钱记账本-全民都爱用的随礼管理手账神器
- [论文笔记] Balboa: Bobbing and Weaving around Network Censorship
- Fireshot——很棒的的网页截图扩展
- CSV格式文件向安卓小米手机中导入通讯录
- 知识图谱中三元组抽取
- android后台流量限制,手机流量控制!安卓手机控制流量设置小技巧
- mac电脑怎么彻底删除卸载桌面软件图标的软件?