详解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实现得到一个给定类的虚函数
Sep 28 Python
C#返回当前系统所有可用驱动器符号的方法
Apr 18 Python
Python使用迭代器捕获Generator返回值的方法
Apr 05 Python
Django ORM框架的定时任务如何使用详解
Oct 19 Python
小米5s微信跳一跳小程序python源码
Jan 08 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
Feb 07 Python
python函数式编程学习之yield表达式形式详解
Mar 25 Python
Python 读取指定文件夹下的所有图像方法
Apr 27 Python
解决Python3中的中文字符编码的问题
Jul 18 Python
基于Python执行dos命令并获取输出的结果
Dec 30 Python
Pytorch环境搭建与基本语法
Jun 03 Python
快速一键生成Python爬虫请求头
Mar 04 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如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
2019/05/29 PHP
初学Javascript的一些总结
2008/11/03 Javascript
javascript web对话框与弹出窗口
2009/02/22 Javascript
JavaScript 三种创建对象的方法
2009/10/16 Javascript
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
node.js中的fs.fstat方法使用说明
2014/12/15 Javascript
Jquery 实现弹出层插件
2015/01/28 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
jQuery通过ajax快速批量提交表单数据
2016/10/25 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
vue一步步实现alert功能
2017/07/05 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
[02:04]2016国际邀请赛中国区预选赛VG.R晋级之路
2016/07/01 DOTA
[54:58]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第一场 11.25
2020/11/25 DOTA
Python import用法以及与from...import的区别
2015/05/28 Python
用Python解决计数原理问题的方法
2016/08/04 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
Django 解决由save方法引发的错误
2020/05/21 Python
python从Oracle读取数据生成图表
2020/10/14 Python
Python根据URL地址下载文件并保存至对应目录的实现
2020/11/15 Python
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
2012/11/25 面试题
上班迟到检讨书
2014/01/10 职场文书
旅游网创业计划书
2014/01/31 职场文书
《小蝌蚪找妈妈》教学反思
2014/02/21 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
法院信息化建设方案
2014/05/21 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
2015年元旦标语大全
2014/12/09 职场文书
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS