selenium + chromedriver 被反爬的解决方法

问题背景:这个问题是在爬取某夕夕商城遇到的问题,原本的方案是用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里的一些特定参数名称,我尝试了一下,没有生效。 

这篇这是暂时记录一下,之后的博客里,会详细的写解决流程!!

  • 17
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 32
    评论
Selenium是一个常用的自动化测试工具,可以模拟人类操作浏览器,包括修改浏览器指纹。下面是使用Selenium修改浏览器指纹的一般步骤: 1. 安装Selenium库:使用pip命令安装Selenium库,例如`pip install selenium`。 2. 下载浏览器驱动:根据你使用的浏览器,下载对应的浏览器驱动。Selenium需要根据浏览器驱动来控制浏览器。常见的浏览器驱动如Chrome驱动(chromedriver)、Firefox驱动(geckodriver)等。 3. 配置浏览器驱动路径:将下载的浏览器驱动放在合适的位置,并将其路径配置到系统环境变量中,或者在代码中指定驱动路径。 4. 创建浏览器实例:使用Selenium创建一个浏览器实例,例如使用Chrome浏览器: ```python from selenium import webdriver # 指定Chrome驱动路径 driver = webdriver.Chrome(executable_path='path/to/chromedriver') ``` 5. 修改浏览器指纹:通过修改浏览器的User-Agent来修改浏览器指纹。以下是一个示例代码: ```python from selenium import webdriver from selenium.webdriver.chrome.options import Options # 创建Chrome选项对象 options = Options() # 设置User-Agent options.add_argument('--user-agent="Your User Agent"') # 创建Chrome浏览器实例 driver = webdriver.Chrome(executable_path='path/to/chromedriver', options=options) ``` 在`--user-agent`后面填写你想要设置的User-Agent。 6. 执行自动化操作:使用Selenium的相关方法,如`get()`访问网页,`find_element()`定位元素等,执行你需要的自动化操作。 需要注意的是,使用Selenium修改浏览器指纹可能会触发一些网站的反爬虫机制,因为Selenium模拟的是真实浏览器行为。在使用时,应遵守网站的规则,并进行合法合规的爬取。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值