详解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
  • asp之家 网络编程 m.aspxhome.com