详解selenium + chromedriver 被反爬的解决方法


Posted in Python onOctober 28, 2020

问题背景:这个问题是在爬取某夕夕商城遇到的问题,原本的方案是用selenium + chromedriver + mitmproxy开心的刷,但是几天之后,发现刷不出来了,会直接跳转到登陆界面(很明显,是遭遇反爬了)

讲实话,这还是第一次用硒被反爬的,于是进行大规模的测试对比。

同台机器,用铬浏览器正常访问是不用跳转到登陆界面的,所以不是IP的问题。再用提琴手抓包对比了一下两个请求头,请求头都是一样的,所以忽略标头的反爬。

最后通过分析,可能是硒被检测出来了。于是就去查资料。大概的查到是和webdriver的有关系的。因为这个在服务端是可以检测到的。于是通过fiddler抓包,全局搜索了一下webdriver,发现在js中果然是有判断的。导致selenium爬取的时候,被转到登陆界面。

解决方法:mitmproxy

因为mitmproxy可以拦截请求,所以在响应中,将包含的webdriver的JS中的关键字替换成其他的字符就可以了。

if "/_next/static/js/common_pdd" in flow.request.url:
    flow.response.text = flow.response.text.replace("webdriver", "userAgent")

我是这样替换的。这样js解析的参数就变了,问题花刃而解。可以正常爬取数据了。

另外国外网上也有很多方法,比如修改webdriver里的一些特定参数名称,我尝试了一下,没有生效。

到此这篇关于详解selenium + chromedriver 被反爬的解决方法的文章就介绍到这了,更多相关selenium chromedriver反爬内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木! 

Python 相关文章推荐
python检测远程服务器tcp端口的方法
Mar 14 Python
探究python中open函数的使用
Mar 01 Python
python嵌套字典比较值与取值的实现示例
Nov 03 Python
Python读取MRI并显示为灰度图像实例代码
Jan 03 Python
python 整数越界问题详解
Jun 27 Python
Python求均值,方差,标准差的实例
Jun 29 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
Aug 29 Python
python Qt5实现窗体跟踪鼠标移动
Dec 13 Python
python logging通过json文件配置的步骤
Apr 27 Python
django和flask哪个值得研究学习
Jul 31 Python
python 爬虫爬取京东ps4售卖情况
Dec 18 Python
pytorch实现ResNet结构的实例代码
May 17 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
Nov 25 #Python
Python字典实现伪切片功能
Oct 28 #Python
python使用selenium爬虫知乎的方法示例
Oct 28 #Python
怎么解决pycharm license Acti的方法
Oct 28 #Python
python如何快速拼接字符串
Oct 28 #Python
Python实现简单的猜单词小游戏
Oct 28 #Python
Python中openpyxl实现vlookup函数的实例
Oct 28 #Python
You might like
php实现httpclient类示例
2014/04/08 PHP
让textarea控件的滚动条怎是位与最下方
2007/04/20 Javascript
基于JQuery的模拟苹果桌面Dock效果(稳定版)
2012/10/15 Javascript
JavaScript返回网页中超链接数量的方法
2015/04/03 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
JQuery标签页效果实例详解
2015/12/24 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
SpringMVC简单整合Angular2的示例
2017/07/31 Javascript
jQuery Datatables表头不对齐的解决办法
2017/11/27 jQuery
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
2019/09/09 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
d3.js实现图形拖拽
2019/12/19 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
Python控制多进程与多线程并发数总结
2016/10/26 Python
Python学习之Django的管理界面代码示例
2018/02/10 Python
Python实现删除时保留特定文件夹和文件的示例
2018/04/27 Python
Python进阶之自定义对象实现切片功能
2019/01/07 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
在python中创建指定大小的多维数组方式
2019/11/28 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
keras load model时出现Missing Layer错误的解决方式
2020/06/11 Python
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
Andrew Marc官网:设计师外套的领先制造商
2019/10/30 全球购物
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
工程造价管理专业大专生求职信
2013/10/06 职场文书
手机促销活动方案
2014/02/05 职场文书
活动总结模板
2014/05/09 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
安全生产感想
2015/08/07 职场文书
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android