Selenium如何通过js注入避免被检测

1. 前言

在使用Selenium进行模拟爬虫的时候,很多时候网站都会有一定的检测机制,能够检测出你这个是Selenium程序,比如淘宝网。

如何知道当前是否被检测,我们可以通过以下代码来进行检验:

复制代码
window.navigator.webdriver

2. 检测当前是否被发现

我们打开开发者工具: F12

当我们复制上面代码的时候,会出现这个问题:

这个时候,我们输入:

复制代码
允许粘贴

如果是英文提示,就输入:

复制代码
allow pasting

我们发现这里是false,说明没被检测

这时,我们用seleniunm启动试一下:

3. 解决方案

我们采用一段js注入代码就行了:

python 复制代码
from selenium.webdriver import ActionChains
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options

option = Options()
option.add_experimental_option("detach", True)
driver = Chrome(options=option)

# Selenium在打开任何页面之前,先运行这个Js文件。

with open('./1.js') as f:
    js = f.read()

# 进行js注入,绕过检测

driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
    "source": js
})

driver.get('https://www.taobao.com')

附上js代码的地址:

https://download.csdn.net/download/xiao_a_lian/89752217

相关推荐
放下华子我只抽RuiKe532 分钟前
React 从入门到生产(四):自定义 Hook
前端·javascript·人工智能·深度学习·react.js·自然语言处理·前端框架
XinZong1 小时前
OpenClaw 实现双重心跳(Heartbeat)+ clawreach虾聊项目实现
javascript
还有多久拿退休金3 小时前
一张栈的图,治好你面试答不出 script 阻塞的病
前端·javascript
zithern_juejin3 小时前
原型与原型链
javascript
008爬虫实战录6 小时前
【码上爬】 题十二:如来神掌 困难, JSVMP加密,使用代理补环境
前端·javascript·node.js
threelab6 小时前
Three.js 数学函数着色器 | 三维可视化 / AI 提示词
javascript·人工智能·着色器
ZC跨境爬虫7 小时前
跟着 MDN 学CSS day_3:(为一个传记页面添加样式)
前端·javascript·css·ui·音视频·html5
夜雪闻竹7 小时前
sql.js WASM 实战:浏览器里跑 SQLite
javascript·sql·wasm
爱喝铁观音的谷力景辉7 小时前
在Cesium中实现带箭头方向路线样式的技术详解
javascript·cesium
Qhappy7 小时前
AI逆向实战:从零还原某航空App的AES加密
javascript·后端