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

相关推荐
jktantan12 小时前
(二)Vue 3 的 attrs 不是响应式:el-form 扩展属性同步的三种方案
前端·javascript·vue.js·element-plus
echome88813 小时前
JavaScript async/await 错误处理:别让 Promise 静默失败
开发语言·前端·javascript·promise
#麻辣小龙虾#14 小时前
网页布局css中flex+margin的组合布局技巧
开发语言·前端·javascript
Hello.Reader15 小时前
Three.js / Cesium 卡顿怎么办?把三维渲染搬到 GPU 服务器
服务器·开发语言·javascript
chi113015 小时前
【无标题】
前端·javascript·python
萝卜兔00815 小时前
PIKACHU_UnsafeFileUpload
javascript·php
程序员大阳1 天前
副队长JavaScript教程(50)-DOM:网页开发的起点
javascript·dom·es·节点·概念·document·关系
梧桐1681 天前
14天、31个缺陷、28个测试脚本—用 Claude Code 完成第三方软件测试
人工智能·测试工具
香芋芋圆1 天前
iD-editor 详解|OSM官方在线编辑器,基于D3.js的轻量地图编辑器
开发语言·javascript·编辑器
晗夜未央1 天前
任务队列反复失败,先分清重试、阻塞和结果待核对
开发语言·javascript