详解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读取环境变量的方法和自定义类分享
Nov 22 Python
实例讲解Python设计模式编程之工厂方法模式的使用
Mar 02 Python
Python的包管理器pip更换软件源的方法详解
Jun 20 Python
全面了解Python环境配置及项目建立
Jun 30 Python
Python自动化测试Eclipse+Pydev 搭建开发环境
Aug 15 Python
Python中遇到的小问题及解决方法汇总
Jan 11 Python
详解Django定时任务模块设计与实践
Jul 24 Python
对Python _取log的几种方式小结
Jul 25 Python
TensorFlow保存TensorBoard图像操作
Jun 23 Python
Pycharm配置lua编译环境过程图解
Nov 28 Python
python实现Thrift服务端的方法
Apr 20 Python
Pytorch DataLoader shuffle验证方式
Jun 02 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 小乘法表实现代码
2009/07/16 PHP
PHP定时任务延缓执行的实现
2014/10/08 PHP
Thinkphp3.2.3分页使用实例解析
2016/07/28 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
解析URI与URL之间的区别与联系
2013/11/22 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
Vue.js实现简单ToDoList 前期准备(一)
2016/12/01 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
手把手搭建安装基于windows的Vue.js运行环境
2017/06/12 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
Python中字典和JSON互转操作实例
2015/01/19 Python
Python线程中对join方法的运用的教程
2015/04/09 Python
巧用python和libnmapd,提取Nmap扫描结果
2016/08/23 Python
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
python暴力解压rar加密文件过程详解
2019/07/05 Python
python文件操作的简单方法总结
2019/11/07 Python
python PIL/cv2/base64相互转换实例
2020/01/09 Python
虚拟环境及venv和virtualenv的区别说明
2021/02/05 Python
ALDO美国官网:加拿大女鞋品牌
2018/12/28 全球购物
介绍一下Java中的Class类
2015/04/10 面试题
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
大学生四年生活自我鉴定
2013/11/21 职场文书
公司总经理岗位职责
2014/03/15 职场文书
小学优秀班主任材料
2014/12/17 职场文书
二手房购房意向书
2015/05/09 职场文书
毕业论文答辩稿范文
2015/06/23 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书