详解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实现读取TXT文件数据并存进内置数据库SQLite3的方法
Aug 08 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
Aug 18 Python
儿童学习python的一些小技巧
May 27 Python
Sanic框架流式传输操作示例
Jul 18 Python
python设计tcp数据包协议类的例子
Jul 23 Python
原生python实现knn分类算法
Oct 24 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
Nov 05 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
Feb 19 Python
python利用datetime模块计算程序运行时间问题
Feb 20 Python
在keras 中获取张量 tensor 的维度大小实例
Jun 10 Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 Python
Django集成MongoDB实现过程解析
Dec 01 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
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
php采集文章中的图片获取替换到本地(实现代码)
2013/07/08 PHP
php实现读取手机客户端浏览器的类
2015/01/09 PHP
PHP中PDO事务处理操作示例
2018/05/02 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
firefox下input type="file"的size是多大
2011/10/24 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
图片延迟加载的实现代码(模仿懒惰)
2013/03/29 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
2013/04/08 Javascript
jquery动态添加option示例
2013/12/30 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
2016/03/18 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
2018/12/13 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
学习python的几条建议分享
2013/02/10 Python
Python中的sort()方法使用基础教程
2017/01/08 Python
python 生成器协程运算实例
2017/09/04 Python
对python中执行DOS命令的3种方法总结
2018/05/12 Python
python 获取字符串MD5值方法
2018/05/29 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
python从Oracle读取数据生成图表
2020/10/14 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
香港钟表珠宝首饰商城:OneMallTime网摩间
2016/10/14 全球购物
女士鞋子、包包和服装在线,第一款10美元:ShoeDazzle
2019/07/26 全球购物
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
夏季奶茶店创业计划书
2014/01/16 职场文书
辩论会主持词
2015/07/03 职场文书
jquery插件实现图片悬浮
2021/04/16 jQuery
vue/cli 配置动态代理无需重启服务的方法
2022/05/20 Vue.js