实际上,我们使用默认的方式初始化 WebDriver 打开一个网站,下面这段 JS 代码永远为 true,而手动打开目标网站的话,则为:undefined或false
<!DOCTYPE html>上面的代码如果手动打开浏览器执行是fasle,但是在selenium打开就是true,这就是别人能够识别我们在爬取信息,那么怎么将window.navigator.webdriver变成false呢?代码增加
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript">
document.write(window.navigator.webdriver )
</script>
<style>
</style>
</head>
<body>
</body>
</html>
browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
browser.implicitly_wait(10)完整可运行代码如下:#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
from selenium import webdriver
chromeOptions = webdriver.ChromeOptions()
# 打开参数
chromeOptions.add_experimental_option('excludeSwitches', ['enable-automation'])
chromeOptions.add_argument("--headless")
chromeOptions.add_argument("--remote-debugging-port=9222")
chromeOptions.add_argument('--no-sandbox')
browser = webdriver.Chrome('/usr/bin/chromedriver',chrome_options=chromeOptions)
#新增反爬识别
browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
browser.implicitly_wait(10)
browser.get("https://baidu.com")
网友回复
gpt-image2能直接将图片转成分层透明的psd设计文件?
claude code、codex、gemini cli如何切换国内大模型使用?
蒸馏最强ai大模型是中小ai模型低成本升级的最好通道?
arena.ai上为啥没有最新的claude4.7及gpt5.5呢?
ai大模型公司为啥开始大量招聘文科生了?
cloudflared如何在低版本centos6或7上安装?
bfwsoa框架如何开启异步缓存与异步任务模式?
selenium如何获取网页js加载渲染后的真实dom结构?
go编写的Eino与python编写的langchain如何选择?
LangChain如何编写多个agent协同工作的代码?


