详解selenium + chromedriver 被反爬的解决方法
作者:黑蚂蚁 时间:2022-03-20 18:40:46
问题背景:这个问题是在爬取某夕夕商城遇到的问题,原本的方案是用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里的一些特定参数名称,我尝试了一下,没有生效。
来源:https://blog.csdn.net/weixin_39847926/article/details/82262048
标签:selenium,chromedriver,反爬
0
投稿
猜你喜欢
Python iter()函数用法实例分析
2022-11-01 00:00:01
IE bug: 消失的绝对定位元素
2009-10-26 17:59:00
SQL SERVER EXPRESS 常见问题及解决办法
2008-09-13 19:07:00
实际应用:MySQL5存储过程编写
2008-11-11 12:25:00
【推荐】汉字转为拼音的asp函数
2007-08-17 11:11:00
Python将list中的string批量转化成int/float的方法
2021-12-11 00:11:59
10个ASP网页制作技巧
2007-09-24 13:12:00
提高javascript的速度系列(序)
2008-07-15 12:38:00
关于DOM元素定位属性的深入学习
2008-04-02 11:46:00
Ajax+PHP边学边练 之五 图片处理
2023-11-18 07:21:29
JavaScript缓动动画函数的封装方法
2023-08-07 10:48:26
Python抓取框架Scrapy爬虫入门:页面提取
2022-04-16 18:57:47
PHP的mysqli_select_db()函数讲解
2023-06-07 18:59:44
Python SQLAlchemy库的使用方法
2021-04-19 20:16:16
淘宝搜索框研究报告
2010-07-27 12:49:00
asp不用DSN也能连接EXCEL吗?
2009-10-29 12:25:00
界面内容优化的层次
2007-11-06 13:07:00
asp FSO组件操作详解
2009-03-20 18:32:00
SQL Server与Oracle数据库在查询优化上的差异
2009-02-18 14:28:00
python实现拓扑排序的基本教程
2021-03-24 04:24:02