selenium框架操作stealth.min.js文件隐藏浏览器指纹特征
2023-09-14 09:14:23 时间
什么是浏览器指纹?
浏览器指纹是指浏览器的各种信息,当我们访问其他网站时,即使是在匿名的模式下,这些信息也可以帮助网站识别我们的身份。
人手上的指纹之所以具有唯一性,是因为每个指纹具有独特的纹路、这个纹路由凹凸的皮肤所形成,具有独一无二的特征。
浏览器指纹和人手手指上的指纹同理,都具有独一无二的特性。网站通过获取浏览器具有辨识度的信息,进行一些计算得出一个值,那么这个值就是浏览器指纹。
手动打开浏览器指纹情况
正常情况手动打开浏览器,输入网址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文件可以隐藏浏览器指纹
stealth.min.js
文件下载地址:关注文末公众号,回复:隐藏浏览器指纹
添加请求头 + 执行 stealth.min.js
文件进行隐藏浏览器指纹:
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
# 添加请求头伪装浏览器
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)
with open('stealth.min.js') as f:
js = f.read()
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": js
})
driver.get('https://bot.sannysoft.com/')
driver.save_screenshot('2.png')
运行结果:
通过执行 stealth.min.js
进行隐藏浏览器指纹,已经和正常访问一样了!
相关文章
- JS+CSS3 360度全景图插件 - Watch3D.js
- JS文件上传神器bootstrap fileinput详解
- baguetteBox.js响应式画廊插件(纯JS)
- Node.js之HTPP URL
- JS魔法堂:追忆那些原始的选择器
- 在js里再引入js 文件(代码库)
- 异步加载js文件的方法总结
- js jsonParse
- js中return的作用及用法
- JS魔法堂:不完全国际化&本地化手册 之 拓展篇
- [Cycle.js] Making our toy DOM Driver more flexible
- Atitit stomp.js conn连接activemq 目录 1.1. activemq 启动,已经默认开启了stomp ws的接口。。地址是1 1.2. Js 客户端代码1 1.3
- Atitit 研发体系 codelib 代码库的建设 目录 1. 概念与组成2 1.1. Java代码2 1.2. Js代码2 1.3. H5 代码 js+css+htm+txt2 1.4.
- Node.js 的单线程事件驱动模型和内置的线程池模型
- [SAP成都] SAP UI5应用的sap-ui-core.js被加载之前,还有哪些js文件被加载了
- 微信小程序分包后报错:[获取文件失败] 以下文件已被配置忽略打包上传,模拟器无法获取: package1/package1/pages/dailyAdmin/index.js
- python运行execjs解密js
- vue中将验证表单输入框的方法写在一个js文件中(表达式验证邮箱、身份证、号码、两次输入的密码是否一致)
- leetcode 88. 合并两个有序数组 js实现
- springmvc环境下使用ajaxfileupload.js进行文件上传
- Js中的多条件排序,多列排序
- 【JS高级】js面向对象三大特性之多态_07
- Node.js fs模块(二)读写文件