详解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获取当前计算机cpu数量的方法
Apr 18 Python
简单学习Python time模块
Apr 29 Python
浅谈python socket函数中,send与sendall的区别与使用方法
May 09 Python
python中将函数赋值给变量时需要注意的一些问题
Aug 18 Python
python字典操作实例详解
Nov 16 Python
Python实现的求解最大公约数算法示例
May 03 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
Jun 26 Python
python交易记录链的实现过程详解
Jul 03 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
Jul 22 Python
Python如何根据时间序列数据作图
May 12 Python
Python实现封装打包自己写的代码,被python import
Jul 12 Python
Python监听剪切板实现方法代码实例
Nov 11 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
第二节 对象模型 [2]
2006/10/09 PHP
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
2010/04/28 PHP
PHP实现字符串的全排列详解
2019/04/24 PHP
EasySlider 基于jQuery功能强大简单易用的滑动门插件
2010/06/11 Javascript
js弹出层之1:JQuery.Boxy (二)
2011/10/06 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
Jquery AJAX POST与GET之间的区别
2013/11/14 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
2015/11/30 Javascript
AngularJS基础 ng-dblclick 指令用法
2016/08/01 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
修改npm全局安装模式的路径方法
2018/05/15 Javascript
javascript中UMD规范的代码推演
2018/08/29 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
Python写的贪吃蛇游戏例子
2014/06/16 Python
python 垃圾收集机制的实例详解
2017/08/20 Python
Python函数参数操作详解
2018/08/03 Python
python自动化unittest yaml使用过程解析
2020/02/03 Python
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
日本航空官方网站:JAL
2019/06/19 全球购物
店长助理岗位职责
2013/12/13 职场文书
怎样写好自荐信和推荐信
2013/12/26 职场文书
大学生职业生涯规划书范文
2014/01/04 职场文书
九年级历史教学反思
2014/01/27 职场文书
创业计划书的写作技巧及要点
2014/01/31 职场文书
法定代表人身份证明书
2014/09/10 职场文书
教师作风整改措施思想汇报
2014/10/12 职场文书
预备党员介绍人意见
2015/06/01 职场文书
利用python进行数据加载
2021/06/20 Python