Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

selenium框架操作stealth.min.js文件隐藏浏览器指纹特征(stealth.min.js文件免费下载)

什么是浏览器指纹?

浏览器指纹是指浏览器的各种信息,当我们访问其他网站时,即使是在匿名的模式下,这些信息也可以帮助网站识别我们的身份。
人手上的指纹之所以具有唯一性,是因为每个指纹具有独特的纹路、这个纹路由凹凸的皮肤所形成,具有独一无二的特征。

浏览器指纹和人手手指上的指纹同理,都具有独一无二的特性。网站通过获取浏览器具有辨识度的信息,进行一些计算得出一个值,那么这个值就是浏览器指纹。

手动打开浏览器指纹情况

正常情况手动打开浏览器,输入网址https://bot.sannysoft.com/

selenium 无界面模式打开浏览器

selenium 操作浏览器,有几十个特征可以被网站检测到,轻松的识别出你是爬虫。

selenium 无界面模式打开浏览器:

from selenium import webdriver


chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
driver = webdriver.Chrome(chrome_options=chrome_options)

driver.get('https://bot.sannysoft.com/')

# 对当前页面进行截图
driver.save_screenshot('1.png')

<br/>

生成图片:

很明显就已经被网站发现是爬虫了!

脚本隐藏浏览器指纹特征

解决浏览器指纹特征关键,实际就是一个 stealth.min.js 文件,通过Python执行这个js文件可以隐藏浏览器指纹

1、在微信搜索公众号:袁袁袁袁满 或者 扫描文末下方名片关注后,回复:隐藏浏览器指纹 即可免费下载 stealth.min.js 文件:

2、将下载好了 stealth.min.js 文件放在和脚本同一级目录下。

3、代码中添加请求头 + 执行 stealth.min.js 文件进行隐藏浏览器指纹:

from selenium import webdriver

# 1. 创建链接
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
# 2. 添加请求头伪装浏览器
chrome_options.add_argument(
    'user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36')
driver = webdriver.Chrome(chrome_options=chrome_options)
# 3. 执行 `stealth.min.js` 文件进行隐藏浏览器指纹
with open('stealth.min.js') as f:
    js = f.read()
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
    "source": js
})
# 4. 发送请求
driver.get('https://bot.sannysoft.com/')
# 5. 进行截图
driver.save_screenshot('2.png')

运行结果,可以看到通过执行 stealth.min.js 进行隐藏浏览器指纹,已经和正常访问一样了:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/yuan2019035055/article/details/125880193