详解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 相关文章推荐
深入讲解Java编程中类的生命周期
Feb 05 Python
Python正则表达式使用经典实例
Jun 21 Python
Python爬取网易云音乐热门评论
Mar 31 Python
Python利用BeautifulSoup解析Html的方法示例
Jul 30 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
Apr 19 Python
python实现抖音点赞功能
Apr 07 Python
解决python中导入win32com.client出错的问题
Jul 26 Python
django自带serializers序列化返回指定字段的方法
Aug 21 Python
pygame实现非图片按钮效果
Oct 29 Python
Python datetime 格式化 明天,昨天实例
Mar 02 Python
Python爬虫实现百度翻译功能过程详解
May 29 Python
Python爬虫之爬取某文库文档数据
Apr 21 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
追求程序速度,而不是编程的速度
2008/04/23 PHP
解析PHP缓存函数的使用说明
2013/05/10 PHP
php分页函数完整实例代码
2014/09/22 PHP
用Javascript同时提交多个Web表单的方法
2009/12/26 Javascript
javascript下4个跨浏览器必备的函数
2010/03/07 Javascript
js跑马灯代码(自写)
2013/04/17 Javascript
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
node.js中的path.normalize方法使用说明
2014/12/08 Javascript
大白话讲解JavaScript的Promise
2017/04/06 Javascript
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
2018/06/25 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
Python中type的构造函数参数含义说明
2015/06/21 Python
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
Python3.x对JSON的一些操作示例
2017/09/01 Python
Django 中使用流响应处理视频的方法
2018/07/20 Python
对Python协程之异步同步的区别详解
2019/02/19 Python
Python3中exp()函数用法分析
2019/02/19 Python
python的turtle库使用详解
2019/05/10 Python
pycharm创建scrapy项目教程及遇到的坑解析
2019/08/15 Python
Python 实现训练集、测试集随机划分
2020/01/08 Python
Python 利用OpenCV给照片换底色的示例代码
2020/08/03 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
历史专业毕业生的自我鉴定
2013/11/15 职场文书
国税会议欢迎词
2014/01/16 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
婚礼秀策划方案
2014/05/19 职场文书
大学毕业生管理学求职信
2014/09/01 职场文书
消防验收申请报告
2015/05/15 职场文书
Python还能这么玩之用Python做个小游戏的外挂
2021/06/04 Python
VS2019连接MySQL数据库的过程及常见问题总结
2021/11/27 MySQL
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL