修改Chromedriver特征字符串

3 篇文章 0 订阅

我们在使用selenium控制Chromedriver的时候,selenium在运行的时候会暴露出一些预定义的Javascript变量(特征字符串),例如"window.navigator.webdriver",在非selenium环境下其值为undefined,而在selenium环境下,其值为true,这种情况下会被防爬机制检测出来。
我所要做的一切是为了确保 c d c 不 再以文档变量的形式存在,我们可以用 16 进制编辑器将 c h r o m e d r i v e r . e x e 打开,查找 cdc_不再以文档变量的形式存在,我们可以用16进制编辑器将chromedriver.exe打开,查找 cdc再以文档变量的形式存在,我们可以用16进制编辑器将chromedriver.exe打开,查找cdc_asdjflasutopfhvcZLmcfl_ 进行手动替换,无需实际进行任何编译。查找 $cdc_asdjflasu## 标题topfhvcZLmcfl_ 替换成内容等长的字符即可。

我们在Linux中安装hexedit:

 yum install hexedit

安装完成后,运行命令,将chromedriver.exe用16进制打开

hexedit chromedriver.exe 

在这里插入图片描述
通过Tab键将光标定位到右侧栏,按Ctrl+S进行查找:
在这里插入图片描述
我们可以查找到var key= '$cdc_asdjflasutopfhvcZLmcfl_ ';这一条语句,然后我们将引号里面的 $cdc_asdjflasutopfhvcZLmcfl_ 替换成内容等长的字符即可:
在这里插入图片描述
替换完成按Ctrl+W保存,Ctrl+X退出。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
Chromedriver是一个被广泛使用的自动化测试工具。然而,在使用Chromedriver进行数据采集时,我们必须要面对一些问题,其中之一就是被网站检测到Chromedriver特征字符串并被反爬。这些特征字符串包括Chrome的user-agent、webdriver、navigator.webdriverChrome的window.chrome属性以及Chrome DevTools Protocol的控制命令行(chrome://devtools/)等。 为了解决这个问题,我们可以通过以下几个步骤: 1. 更改用户代理:Chromedriver默认会使用Chrome的User Agent,我们可以通过更改用户代理来模拟正常的浏览器请求。例如,使用随机的User-Agent来伪装网站的请求,可以有效地避免被识别为Chromedriver。 2. 禁用自动化测试标志:在Chrome浏览器的启动参数中添加--disable-blink-features=AutomationControlled选项,可以禁用自动化测试标志,避免被网站检测。 3. 模拟人类的访问行为:通过模拟人类的访问行为,比如鼠标悬停、点击、滚动页面等,可以避免被网站检测为自动化测试。可以使用Selenium的ActionChains类来实现这些操作。 4. 使用无头浏览器:无头浏览器是不会弹出UI窗口,可以在后台静默运行。这样可以避免被被用户发现,避免被网站识别为Chromedriver。 总之,对于Chromedriver特征字符串被网站检测和反爬的问题,我们需要在多个方面着手来解决。通过这些方法,我们可以提高数据采集的效率和准确性,从而更好地实现自己的数据爬取需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MichaelYZ111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值