【python】自动化工具Selenium与playwright去除webdriver检测

news2024/12/23 8:44:27

对这个世界如果你有太多的抱怨
跌倒了就不敢继续往前走
为什么人要这么的脆弱 堕落
请你打开电视看看
多少人为生命在努力勇敢的走下去
我们是不是该知足
珍惜一切 就算没有拥有
                     🎵 周杰伦《稻香》


在这里插入图片描述

# -*- coding:utf-8 -*-
import time

from  selenium import webdriver
from selenium.webdriver.edge.service import Service

option = webdriver.ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation']) # 去掉webdriver提示 + 顶层窗口
option.add_argument("--disable-blink-features=AutomationControlled") # 屏蔽webdriver特征
browser = webdriver.Chrome(options=option,executable_path="/Applications/Chromium.app/Contents/MacOS/Chromium")

with open('webdriver_check.js', 'r', encoding='utf-8') as f:
    js = f.read()
    browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
        "source": js
    })

time.sleep(10000)

# -*- coding:utf-8 -*-
import time

from playwright.sync_api import sync_playwright


def main():
    # 启动Playwright
    with sync_playwright() as p:
        # 选择浏览器引擎(chromium、firefox、webkit)
        browser = p.chromium.launch(headless=False)

        # 创建新的浏览器上下文
        context = browser.new_context()

        # 创建新的页面
        page = context.new_page()
        with open('webdriver_check.js', 'r', encoding='utf-8') as f:
            js = f.read()
            page.add_init_script(js)

        # 打开网页
        page.goto('https://www.baidu.com/')

        # 在页面中查找并填写表单
        time.sleep(500)

        # 关闭浏览器
        browser.close()


if __name__ == "__main__":
    main()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1521131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker基本配置及使用

Docker基本配置及使用 使用步骤 1.卸载旧版 代码如下:首先如果系统中已经存在旧的Docker,则先卸载 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engin…

C++进阶:详解多态(多态、虚函数、抽象类以及虚函数原理详解)

C进阶:详解多态(多态、虚函数、抽象类以及虚函数原理详解) 结束了继承的介绍:C进阶:详细讲解继承 那紧接着的肯定就是多态啦 文章目录 1.多态的概念2.多态的定义和实现2.1多态的构成条件2.2虚函数2.2.1虚函数的概念2…

P3374 【模板】树状数组 动态求连续区间和 刷题笔记

我们创建如下的树状数组来辅助操作 该数组每个s[i]处于第几层取决于其二进制 最后低位 的1处于从右往左数第几列 显然所有奇数的最右边一位都是1 即其最低位的1 处于右边第一列 所以所有的奇数处于第一层 而2,6,10,14的最低位1处于右边第二…

NVENC 视频编码器 API 编程指南 ( 中文转译 )

基于 NVIDIA Kepler™ 和更高版本 GPU 架构的 NVIDIA GPU 包含基于硬件的 H.264/HEVC/AV1 视频编码器(以下简称 NVENC)。NVENC 硬件采用 YUV/RGB 作为输入,并生成符合H.264/HEVC/AV1 标准的视频比特流。可以使用 NVIDIA 视频编解码器 SDK 中提…

低压保护测控产品解决方案【Acrel-2000M马达监控系统】

背景及需求 低压电机回路 低压进出线回路 越级跳闸 断路器的拒跳对系统安全运行威胁很大,一旦某一单元发生故障时,断路器拒动,将会造成上一级断路器跳闸,称为越级跳闸。断路器越级跳闸的危害这将扩大事故停电范围,甚…

数位排序——数组及lambda表达式应用

题目链接:1.数位排序 - 蓝桥云课 (lanqiao.cn) package lanqiao;import java.util.Arrays; import java.util.Scanner;/*** 2023/11/1* 蓝桥2122* 数位和排序,数位和相等的按大小排序*/ public class lanqiao2122_数位排序 {public static void main(Str…

从零开始利用MATLAB进行FPGA设计(四)生成优化HDL代码

文章灵感来源于MATLAB官方免费教程:HDL Coder Self-Guided Tutorial 考虑到MATLAB官网的英文看着慢,再加上视频讲解老印浓浓的咖喱味,我决定记录利用MATLAB&Simulink&SystemGenerator进行FPGA数字信号处理的学习过程。 往期回顾&am…

力扣大厂热门面试算法题 36-38

36. 有效的数独,37. 解数独,38. 外观数列,每题做详细思路梳理,配套Python&Java双语代码, 2024.03.16 可通过leetcode所有测试用例。 目录 36. 有效的数独 解题思路 完整代码 Java Python 37. 解数独 解题思…

MySql入门教程--MySQL数据库基础操作

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

【C++从练气到飞升】03---构造函数和析构函数

🎈个人主页:库库的里昂 ✨收录专栏:C从练气到飞升 🎉鸟欲高飞先振翅,人求上进先读书。 目录 ⛳️推荐 一、类的6个默认成员函数 二、构造函数 1. 构造函数的概念 2. 构造函数的定义 3. 构造函数的特性 三、析构函…

leetcode 2312. 卖木头块【划分型dp+棋盘切割类型dp】

原题链接:2312. 卖木头块 题目描述: 给你两个整数 m 和 n ,分别表示一块矩形木块的高和宽。同时给你一个二维整数数组 prices ,其中 prices[i] [hi, wi, pricei] 表示你可以以 pricei 元的价格卖一块高为 hi 宽为 wi 的矩形木块…

【数据结构练习题】栈——1.括号匹配 2.逆波兰表达式求值 3.出栈入栈次序匹配 4.最小栈

♥♥♥♥♥个人主页♥♥♥♥♥ ♥♥♥♥♥数据结构练习题总结专栏♥♥♥♥♥ 文件目录 前言1.括号匹配1.1问题描述1.2解题思路1.3画图解释1.4代码实现2.逆波兰表达式求值 2.1问题描述2.2解题思路2.3画图解释2.4代码解释3.出栈入栈次序匹配 3.1问题描述3.2思路分析3.3画图解释3.…

Spring Chache入门详解、配套小案例

简介:Spring Cache是一个框架,实现了基于注解的缓存功能,只需要添加一个注解就能实现缓存功能。 Spring Cache提供了一层抽象,底层可以切换不同的缓存实现,如下: EHCacheCaffeineRedis (这篇帖子&#xff…

Xcode调试Qt 源码

在Mac下使用Xcode 开发Qt程序,由于程序断点或者崩溃后,Qt库的堆栈并不能够正确定位到源码的cpp文件,而是显示的是汇编代码,导致不直观的显示。 加载的其他三方库都是同理。 所以找了攻略和研究后,写的这篇文章。 一&a…

网络原理(1)——UDP协议

目录 一、应用层 举个例子:点外卖 约定数据格式简单粗暴的例子 客户端和服务器的交互: 序列化和返序列化 xml、json、protobuffer 1、xml 2、json 3、protobuffer 二、传输层 端口 端口号范围划分 认识知名的端口号 三、UDP协议 端口 U…

NCP1380BDR2G芯片中文资料规格书PDF数据手册引脚图图片参数功能价格

产品描述: NCP1380 是一款高性能器件,旨在为准谐振转换器供电。该控制器基于专属的谷锁闭系统,可以在功率负载变轻时进行切换并降低开关频率。这样将产生稳定的运行,即使在漏极-源极谷中总是触发的开关事件下也是如此。此系统可在…

蓝膜胶带(蓝膜)为动力电池电气绝缘主流应用方案之一 市场需求空间较广阔

蓝膜胶带(蓝膜)为动力电池电气绝缘主流应用方案之一 市场需求空间较广阔 动力电池蓝膜胶带是一种PET基材背上PSA压敏胶制成的单面胶带,因其以深蓝色居多,又被称为蓝膜。蓝膜为绝缘材料,可将电芯与电芯之间分隔开来&…

环保水离子水壁炉,现代时尚

环保水离子壁炉,现代而时尚,靠水运行,用电量很少。这绝对是最生态的壁炉。完全安全(带冷火焰),其现代设计完美适应各种环境。凭借最低的碳足迹,它无疑是未来的混合壁炉。 什么是环保壁炉&#x…

JUC之CAS比较并交换

CAS 原子类引入 加入原子整型类的操作后,无锁化的操作 CAS 比较并交换 硬件级别的保证 源码分析 引出UnSafe类 UnSafe源码分析 unsafe中的do-while保证自旋 public final int getAndAddInt(Object var1, long var2, int var4) {int var5;do {var5 this…

Linux:kubernetes(k8s)有状态的服务部署(14)

之前我都是对无状态进行的一个操作,我们想扩容就扩容,想缩容就缩容,根本不用去考虑他的一个网络环境,本地储存环境啥的一个状态 当我们做有状态的服务的操作,肯定要申请一个持久化的一个空间,以及网络&…