详解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脚本批量下载DesktopNexus壁纸的教程
May 06 Python
Python中对元组和列表按条件进行排序的方法示例
Nov 10 Python
Python构建网页爬虫原理分析
Dec 19 Python
TensorFlow中权重的随机初始化的方法
Feb 11 Python
Python多继承顺序实例分析
May 26 Python
使用Python进行QQ批量登录的实例代码
Jun 11 Python
python单线程文件传输的实例(C/S)
Feb 13 Python
关于Keras Dense层整理
May 21 Python
Python基于staticmethod装饰器标示静态方法
Oct 17 Python
Django xadmin安装及使用详解
Oct 26 Python
如何在 Matplotlib 中更改绘图背景的实现
Nov 26 Python
python 镜像环境搭建总结
Sep 23 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 Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
2012/12/10 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
关于laravel5.5的定时任务详解(demo)
2019/10/23 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
jQuery 表单验证扩展(三)
2010/10/20 Javascript
javascript中onclick(this)用法介绍
2013/04/19 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
2015/09/09 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
layer实现弹窗提交信息
2016/12/12 Javascript
bootstrap是什么_动力节点Java学院整理
2017/07/14 Javascript
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
Python基础学习之常见的内建函数整理
2017/09/06 Python
python 3.5实现检测路由器流量并写入txt的方法实例
2017/12/17 Python
Python异常处理操作实例详解
2018/05/10 Python
python使用rpc框架gRPC的方法
2018/08/24 Python
python随机数分布random测试
2018/08/27 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
Python实现八皇后问题示例代码
2018/12/09 Python
解决.ui文件生成的.py文件运行不出现界面的方法
2019/06/19 Python
softmax及python实现过程解析
2019/09/30 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
python爬虫scrapy框架之增量式爬虫的示例代码
2021/02/26 Python
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
化学相关工作求职信
2013/10/02 职场文书
经典大学生求职信范文
2014/01/06 职场文书
满月酒主持词
2014/03/27 职场文书
海洋科学专业求职信
2014/08/10 职场文书
心得体会的写法
2014/09/05 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
导游词之麻姑仙境
2019/11/18 职场文书
Nginx动静分离配置实现与说明
2022/04/07 Servers