【python】在 Linux 中使用webdriver有头模式

用webdriver 模拟浏览网页时,可以使用无头模式,尤其在linux系统中,因为linux没有图形化界面,使用有头模式一般会报错。

chrome_options.add_argument("--headless")  # 设置Chrome无头模式

但是有些网站的反爬措施比较严格,使用无头模式会被识别出来,直接拒绝访问,这时候,就得使用有头模式,但是linux没有图形化界面,这时候就需要搞一个假的图形界面出来,从而欺骗浏览器,让它的有头模式能够正常使用。

为了达到这个目的,我们可以使用一个叫做 Xvfb的东西。

Xvfb 在一个没有图像设备的机器上实现了 X11显示服务的协议。它实现了其他图形界面都有的各种接口,但并没有真正的图形界面。所以当一个程序在 Xvfb 中调用图形界面相关的操作时,这些操作都会在虚拟内存里面运行,只不过你什么都看不到而已。

使用 Xvfb,我们就可以欺骗 Selenium,让它以为自己运行在一个有图形界面的系统里面,这样一来就能够正常使用有头模式了。

安装 Xvfb:

sudo yum update
sudo yum install xvfb

使用xvfb运行python脚本时,需要在命令面前加上 xvfb-run,比如:

xvfb-run python3 jv.py

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

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

相关文章

AI与音乐:共创未来还是艺术终结?

随着人工智能技术的不断进步,AI在音乐创作领域的应用已经成为了一个不可忽视的现象。最近一个月,一系列音乐大模型的推出,不仅极大地降低了普通人创作音乐的门槛,也引发了关于音乐产业未来的广泛讨论。AI是否正在创造音乐的新纪元…

49-1 内网渗透 - Bypass UAC介绍

一、Bypass UAC 用户账户控制(UAC)是Windows操作系统的一种安全机制,旨在防止未经授权的应用程序自动安装并防止非授权修改系统设置。它确保应用程序和任务通常在非管理员账户的安全上下文中运行,除非明确需要管理员权限,用户才会被提示确认。 对于非RID 500的管理员用户(…

XML DOM 简介

XML DOM 简介 XML DOM(XML Document Object Model)是一种用于XML文档的标准编程接口。它定义了一种方式,允许程序和脚本动态地访问和更新文档的内容、结构和样式。XML DOM 将 XML 文档视为一个树形结构,其中每个节点都代表文档中的一个元素、属性、文本或其他内容。 XML …

学习笔记——路由网络基础——路由汇总(路由聚合)

九、路由汇总(路由聚合) 1、路由汇总背景 子网划分、VLSM解决了地址空间浪费的问题,但同时也带了新的问题,路由表中的路由条目数量增加。为减少路由条目数量可以使用路由汇总。 对于一个大规模的网络来说,路由器或其他具备路由功能的设备势…

C#的Switch语句2(case后的值与模式匹配)

文章目录 switch语法结构case具体的值枚举值字符串const关键字 如果没有匹配的值default语句不一定要在最后 模式匹配与C的差异-case穿透(Fall-through)下一篇文章 switch语法结构 基础的语法结构,在上一篇文章已经写了,具体请看…

git 初基本使用-----------笔记

Git命令 下载git 打开Git官网(git-scm.com),根据自己电脑的操作系统选择相应的Git版本,点击“Download”。 基本的git命令使用 可以在项目文件下右击“Git Bash Here” ,也可以命令终端下cd到指定目录执行初始化命令…

什么是流水线?

流水线(Pipeline)是一种提升系统效率和性能的方法,通过将任务分解成多个阶段(也称为“阶段”或“段”),使得各个阶段能够并行工作。这种技术广泛应用于计算机处理器、工业生产、软件开发、数据处理等领域&a…

6.20作业

1.已知网址www.hqyj.com截取出网址的每一个部分(要求,该网址不能存入文件中) echo www.hqyj.com | cut -d "." -f "1,2,3" 2.整理思维导图 3.将配置桥接网络的过程整理成文档,发csdn

条码工具 Dynamic Web TWAIN HTML5 版本的工作原理

Dynamic Web TWAIN 是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。然后用户可以编辑图像并将图像保存为多种格式,用户可保存图像到远程数据库或者Share…

轻松搞定Python List 列表必备方法大全!

更多Python学习内容:ipengtao.com 在 Python 编程中,list(列表)是一种非常重要且常用的数据结构。列表可以存储不同类型的元素,并且提供了许多方便的内置方法来操作和处理这些元素。本文将详细介绍 Python 中 list 列表…

【笔记】HashMap的头插死循环问题

HashMap头插死循环是指在JDK1.7中,多线程环境下,HashMap进行扩容时由于多个线程一起执行扩容,可能会导致某一结点被错误插入头部并形成一个循环链表。 发生死循环的源码如下: // hashmap由数组链表构成 void transfer(Entry[] ne…

一些国外的网站

1、https://www.baeldung.com/ Baeldung是一个专注于Java和Spring框架的技术博客,提供了深入的Java教程和实践经验分享 2、https://www.javatpoint.com/java-tutorial JavaTpoint是一个综合性的学习Java的网站,提供了详细的Java教程,示例代…

Android 13 修改系统导航默认值

Android 13 原生系统上,设置-系统-手势-系统导航 菜单,可以修改系统导航方式。 手势导航: 三按钮导航: adb 获取当前导航方式,手势导航 是 2 ,三按钮导航是 0 。 settings get secure navigation_mode 修…

电脑网络动态IP配置:步骤详解与实用指南

在构建和管理电脑网络时,IP地址的配置是一个关键步骤。IP地址是设备在网络中的唯一标识符,它决定了设备如何与其他设备进行通信。有两种主要的IP地址类型:静态IP和动态IP。静态IP是手动配置的,而动态IP则是由网络中的DHCP服务器自…

Android C++系列:内存知识整理

1. 控制C的内存分配 在嵌入式系统中使用C的一个常见问题是内存分配,即对new 和 delete 操作符的失控。 具有讽刺意味的是,问题的根源却是C对内存的管理非常的容易而且安全。具体地说,当一个对象被消除时,它的析构函数能够安全的释…

USB Attached SCSI

USB 附加 SCSI(UAS)或 USB 附加 SCSI 协议(UASP)是一种计算机协议,用于在 USB 存储设备(如硬盘(HDD)、固态硬盘(SSD)和优盘)之间传输数据。UAS 依…

自动驾驶辅助功能测试用例表格(续5)

自动驾驶辅助功能测试用例表格(续) 用例编号测试类型测试项目测试描述车辆准备车辆状态车辆场景车辆执行可变因素具体信号状态通过标准预期标准通过/失败RSA-001可靠性测试系统重启稳定性测试自动驾驶辅助系统在重启后的稳定性和功能恢复情况系统已安装并配置完成车辆静止状态…

202406最新manjaro安装sogou输入法解决方案(采用aur本地package+sogou deb包解决方案)

本地执行安装方法 1.拉取源码 git clone https://gitee.com/liushuai05/fcitx-sogoupinyin.git cd fcitx-sogoupinyin 2.获取sogou下载地址并替换到源码中 - 下载地址:https://pinyin.sogou.com/linux/ - 点击立即下载->x86_64->下载,然后右键复…

LoRaWAN在嵌入式网络通信中的应用:打造高效远程监控系统(附代码示例)

引言 随着物联网(IoT)技术的发展,远程监控系统在各个领域的应用越来越广泛。LoRaWAN(Long Range Wide Area Network)作为一种低功耗广域网通信协议,因其长距离传输、低功耗和高可靠性等特点,成为…

bcc入门教程

title: 入门教程 date: 2024-06-20T14:31:46Z lastmod: 2024-06-21T04:12:43Z 入门教程 本教程仅包含怎样快速使用bcc工具解决性能、故障和网络问题。若想要开启开发新的bcc工具,请参考bcc教程。 本教程认为bcc已经安装,可以成功运行execsnoop命令。如…