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

相关推荐
图扑软件2 小时前
可视化重塑汽车展示平台新体验
前端·javascript·人工智能·数字孪生·可视化·智慧交通·智慧出行
NoneCoder4 小时前
JavaScript系列(26)--安全编程实践详解
开发语言·javascript·安全
杨荧5 小时前
【开源免费】基于Vue和SpringBoot的林业产品推荐系统(附论文)
前端·javascript·vue.js·spring boot·开源
宏夏c5 小时前
【Vue】let、const、var的区别、适用场景
开发语言·javascript·ecmascript
光影少年5 小时前
前端进程和线程及介绍
前端·javascript
涔溪5 小时前
JS二叉树是什么?二叉树的特性
java·javascript·数据结构
贩卖纯净水.5 小时前
JS后盾人--再一次的走进JS?
开发语言·javascript·ecmascript
乌龟的黑头-阿尔及利亚5 小时前
使用 Vite 创建 Vue 3 项目:从零开始的详细指南
前端·javascript·vue.js
GIS好难学7 小时前
《Openlayers零基础教程》第六课:地图控件
前端·javascript·零基础·openlayers