详解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基于有道实现英汉字典功能
Jul 25 Python
基于Python的接口测试框架实例
Nov 04 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
Jun 21 Python
python自动截取需要区域,进行图像识别的方法
May 17 Python
Python3实现汉语转换为汉语拼音
Jul 08 Python
pandas 如何分割字符的实现方法
Jul 29 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
Feb 18 Python
Python在后台自动解压各种压缩文件的实现方法
Nov 10 Python
Django 权限管理(permissions)与用户组(group)详解
Nov 30 Python
基于Python中Remove函数的用法讨论
Dec 11 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
Jan 12 Python
python+selenium小米商城红米K40手机自动抢购的示例代码
Mar 24 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和MySql来与ODBC数据连接
2006/10/09 PHP
PHP Array交叉表实现代码
2010/08/05 PHP
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
vue如何使用 Slot 分发内容实例详解
2017/09/05 Javascript
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
Vue+webpack+Element 兼容问题总结(小结)
2018/08/16 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
js实现自动播放匀速轮播图
2020/02/06 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
python 生成不重复的随机数的代码
2011/05/15 Python
Python3.x和Python2.x的区别介绍
2013/02/12 Python
Python中使用dom模块生成XML文件示例
2015/04/05 Python
python检查URL是否正常访问的小技巧
2017/02/25 Python
Python二维码生成识别实例详解
2019/07/16 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
Python拆分大型CSV文件代码实例
2019/10/07 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
2020/04/09 Python
Python学习工具jupyter notebook安装及用法解析
2020/10/23 Python
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
大学毕业生通用求职信
2013/09/28 职场文书
《我的第一本书》教学反思
2014/02/15 职场文书
运动会入场式解说词
2014/02/18 职场文书
建材投资建议书
2014/05/16 职场文书
社会工作专业自荐信
2014/09/26 职场文书
2015年教师师德师风承诺书
2015/04/28 职场文书
初中班主任工作总结2015
2015/05/13 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书