CentOS7 启动谷歌浏览器 java+Selenium+chrome+chromedriver
前言:自己想使用该技术实现自动化抓取音乐,目前在window上运行成功,需要在Linux Centos服务上跑,配置上出现了许多问题,特此记录。
参考文档:CentOS7 安装Selenium+chrome+chromedriver+java_远方丿的博客-CSDN博客
一、环境
CentOS 7.6 java (jdk1.8)Selesium 4.11.0
二、 整体逻辑
我们明确的是,在window上是安装了chrome和自带了chromeDriver的,之所以能自动化启动chrome是因为我们使用ChomeDriver,设置了一些参数来启动的。
1. 安装google-chrome
2. 安装chromeDriver
3. 安装XVFB主要是用来虚拟一个界面,以此让chrome在CentOS下启动
三、 安装chromeDriver
去官网查看版本下载 ChromeDriver - WebDriver for Chrome - Downloads
主要是google-chrome 和 chromeDriver要进行版本对应,不然会报错。
//下载安装包
wget https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/115.0.5790.170/linux64/chromedriver-linux64.zip//解压:
unzip chromedriver_linux64.zip//然后将解压的chromedriver移动到 /usr/bin目录下:
mv chromedriver /usr/bin///给与执行权限:
chmod +x /usr/bin/chromedriver//检查chromedriver版本:
chromedriver -version//如果有安装错了,可以清除chromedriver
sudo rm -f /usr/bin/chromedriver
四、安装google-chrome
我自己写的另一篇博客。
Linux 的Centos 7 安装 启动 Google Chrome_tengyuxin的博客-CSDN博客
//启动命令
google-chrome --no-sandbox
//报错信息Missing X server or $DISPLAY
The platform failed to initialize. Exiting.
NaCl helper process running without a sandbox!
Most likely you need to configure your SUID sandbox correctly
缺少X服务器或$DISPLAY
平台初始化失败。正在退出。
NaCl辅助进程在没有沙箱的情况下运行!
很可能您需要正确配置SUID沙箱
上面的错误就是Centos 7.6下本身无界面,无法像window上启动chrome,所以此时我们要安装XVFB来虚拟一个界面,让其能打开chrome。下面就是安装XVFB
五、 XVFB
XVFB是一个X服务器,可以在没有显示硬件和物理输入设备的机器上运行。也就是能在Centos上虚拟一个界面让google-chrome浏览器运行。
//全局安装Xvfb
yum install Xvfb -y//安装Xvfb相关的依赖
yum install xorg-x11-fonts* -y
在/usr/bin/ 新建一个名叫 xvfb-chrom 的文件写入以下内容:
#!/bin/bash_kill_procs() {
kill -TERM $chrome
wait $chrome
kill -TERM $xvfb
}# Setup a trap to catch SIGTERM and relay it to child processes
trap _kill_procs SIGTERM
XVFB_WHD=${XVFB_WHD:-1280x720x16}# Start Xvfb
Xvfb :99 -ac -screen 0 $XVFB_WHD -nolisten tcp &
xvfb=$!
export DISPLAY=:99chrome --no-sandbox --disable-gpu$@ &
chrome=$!wait $chrome
wait $xvfb
添加执行权限
chmod +x /usr/bin/xvfb-chrome
查看当前映射关系
ll /usr/bin/ | grep chrome

更改Chrome启动的软连接
/* 下面的操作主要就是让xvfb-chrome成为运行的主体,这样chrome在xvfb下就可以运行 */// 创建一个软连接
ln -s /etc/alternatives/google-chrome /usr/bin/chrome//删除google-chrome
rm -rf /usr/bin/google-chrome//创建一个软连接
ln -s /usr/bin/xvfb-chrome /usr/bin/google-chrome
查看修改后的映射关系
ll /usr/bin/ | grep chrom

下面是案例:注意代码执行顺序
public void test(){//1. 准备Chrome的配置参数ChromeOptions options = new ChromeOptions();options.addArguments("headless"); //无界面参数options.addArguments("no-sandbox"); //禁用沙盒//2. 创建chromeDriver驱动,设置参数WebDriver driver = new ChromeDriver(options);//3. 在浏览器上执行操作 ,导航到一个网址driver.get("https://www.baidu.com/");//4. 请求浏览器的信息String title = driver.getTitle();System.out.println("浏览器的信息==="+title);//5. 关闭浏览器driver.quit();
}
相关文章:
CentOS7 启动谷歌浏览器 java+Selenium+chrome+chromedriver
前言:自己想使用该技术实现自动化抓取音乐,目前在window上运行成功,需要在Linux Centos服务上跑,配置上出现了许多问题,特此记录。 参考文档:CentOS7 安装Seleniumchromechromedriverjava_远方丿的博客-CSD…...
【无公网IP】在公网环境下Windows远程桌面Ubuntu 18.04
【无公网IP】在公网环境下Windows远程桌面Ubuntu 18.04 文章目录 *【无*公网IP】在公网环境下Windows远程桌面Ubuntu 18.04一、 同个局域网内远程桌面Ubuntu1. 更新软件仓库2. 安装支持包3. 安装XFCE4桌面环境4. 安装XRDP5. 环境设置5.1 XFCE桌面配置5.2 在配置文件中ÿ…...
Java“牵手拼多多商品详情数据采集方法,拼多多API接口申请指南
拼多多详情接口 API 是开放平台提供的一种 API 接口,它可以帮助开发者获取商品的详细信息,包括商品的标题、描述、图片等信息。在电商平台的开发中,详情接口API是非常常用的 API,因此本文将详细介绍详情接口 API 的使用。 一、拼…...
Leetcode-每日一题【剑指 Offer 15. 二进制中1的个数】
题目 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 1 的个数(也被称为 汉明重量).)。 提示: 请注意,在某些语言(如 Java&…...
docker 怎么搭建
Docker是一种容器化平台,可以快速构建、部署和运行应用程序。以下是Docker的搭建流程: 1. 安装Docker 在官方网站上下载并安装Docker,根据官方指引进行安装。 2. 配置Docker环境: 配置Docker环…...
Signal Desktop for Mac(专业加密通讯软件)中文版安装教程
想让您的聊天信息更安全和隐藏吗? Mac版本的Signal Desktop是MACOS上的专业加密通信工具,非常安全。使用信号协议,该协议结合了固定前密钥,双重RATCHES算法和3-DH握手信号,该信号可以确保第三方实体将不会传达您的消息…...
【博客686】k8s informer list-watch机制中的re-list与resync
k8s informer的re-list与resync 1、informer的list-watch机制 client-go中的reflector模块首先会list apiserver获取某个资源的全量信息,然后根据list到的resourceversion来watch资源的增量信息。且希望使用client-go编写的控制器组件在与apiserver发生连接异常时&…...
【Spring专题】Spring底层核心原理解析
目录 前言阅读导航前置知识Q1:你能描述一下JVM对象创建过程吗?Q2:Spring的特性是什么?前置知识总结 课程内容一、Spring容器的启动二、一般流程推测2.1 扫描2.2 IOC2.3 AOP 2.4 小结三、【扫描】过程简单推测四、【IOC】过程简单推…...
出于网络安全考虑,印度启用本土操作系统”玛雅“取代Windows
据《印度教徒报》报道,印度将放弃微软系统,选择新的操作系统和端点检测与保护系统。 备受期待的 "玛雅操作系统 "将很快用于印度国防部的数字领域,而新的端点检测和保护系统 "Chakravyuh "也将一起面世。 不过…...
tensotflow中tf.title()和tf.broadcast()
tf.tile() 和 tf.broadcast_to() 都是 TensorFlow 中用于张量复制的函数,但它们的实现方式和使用场景略有不同。 tf.tile() 函数的定义如下: tf.tile(input, multiples, nameNone) 其中,input 表示要复制的张量,multiples 表示…...
想要延长Macbook寿命?这六个保养技巧你必须get!
Mac作为我们工作生活的伙伴,重要性不需要多说。但在使用的过程中,我们总会因不当操作导致Mac出现各种问题。 要想它长久的陪伴,平时的维护与保养自然不能少,Mac的保养很重要的两点就是硬件保养和电脑系统保养,硬件保养…...
mysql基础之触发器的简单使用
1.建立学生信息表 -- 触发器 -- 建立学生信息表 create table s1(id int unsigned auto_increment,name varchar(30),score tinyint unsigned,dept varchar(50),primary key(id) );2.建立学生补考信息表 -- 建立学生补考信息表 create table s2 like s1;3.建立触发器…...
Spring Boot 配置多数据源【最简单的方式】
Druid连接池 Spring Boot 配置多数据源【最简单的方式】 文章目录 Druid连接池 Spring Boot 配置多数据源【最简单的方式】 0.前言1.基础介绍2.步骤2.1. 引入依赖2.2. 配置文件2.3. 核心源码Druid数据源创建器Druid配置项 DruidConfig 3.示例项目3.1. pom3.1.1. 依赖版本定义3.…...
1、Java简介+DOS命令+编译运行+一个简单的Java程序
Java类型: JavaSE 标准版:以前称为J2SE JavaEE 企业版:包括技术有:Servlet、Jsp,以前称为J2EE JavaME 微型版:以前称为J2ME Java应用: Android平台应用。 大数据平台开发:Hadoo…...
Linux 文件与目录管理,Linux 文件内容查看
目录 Linux 文件与目录管理 处理目录的常用命令 ls (列出目录) mv (移动文件与目录,或修改名称)...
Mysql按小时进行分组统计数据
目录 前言 按1小时分组统计 按2小时分组统计 按X小时分组统计 前言 统计数据时这种是最常见的需求场景,今天写需求时发现按2小时进行分组统计也特别简单,特此记录下。 按1小时分组统计 sql: select hour(pass_time) …...
springboot3日志配置
简介 Spring 使用commons-logging作为内部日志,但是底层日志实现是开放的,可以对接其他日志框架 spring5以及以后common-logging被spring直接自己写了 支持jul, log4j2,logback,springBoot提供了默认的控制台输出配置,也可以配置…...
7款轻量级平面图设计软件推荐
平面图设计的痕迹体现在日常生活的方方面面,如路边传单、杂志、产品包装袋或手机开屏海报等,平面设计软件层出不穷。Photoshop是大多数平面图设计初学者的入门软件,但随着设计师需求的不断提高,平面图设计软件Photoshop逐渐显示出…...
SpringCloud实用篇5——elasticsearch基础
目录 1.初识elasticsearch1.1 了解ES1.1.1 elasticsearch的作用1.1.2 ELK技术栈1.1.3 elasticsearch和lucene1.1.4 总结 1.2.倒排索引1.2.1.正向索引1.2.2.倒排索引1.2.3.正向和倒排 1.3 es的一些概念1.3.1 文档和字段1.3.2 索引和映射1.3.3 mysql与elasticsearch 1.4 部署单点…...
SpringCloud整体架构概览
什么是SpringCloud 目标 协调任何服务,简化分布式系统开发。 简介 构建分布式系统不应该是复杂的,SpringCloud对常见的分布式系统模式提供了简单易用的编程模型,帮助开发者构建弹性、可靠、协调的应用程序。SpringCloud是在SpringBoot的基…...
Notepad++ 开发者福音:集成Hypnos-i1-8B插件实现代码注释与逻辑解释
Notepad 开发者福音:集成Hypnos-i1-8B插件实现代码注释与逻辑解释 1. 引言:代码理解的痛点与解决方案 作为一名开发者,你是否经常面对这样的困境:接手一个遗留项目,面对满屏没有注释的复杂代码;或者自己几…...
NVIDIA cuQuantum 23.10:量子电路模拟GPU加速技术解析
1. 量子电路模拟加速利器:NVIDIA cuQuantum 23.10深度解析量子计算模拟一直是科研和工业界的计算密集型任务。传统CPU在处理超过30个量子比特的电路模拟时,往往会遇到内存和算力的双重瓶颈。NVIDIA cuQuantum的出现彻底改变了这一局面——这个专为量子计…...
RISC-V特权架构入门:手把手教你用CSR指令读写mtvec和mstatus寄存器
RISC-V特权架构实战:CSR寄存器操作指南与异常排查 第一次接触RISC-V的CSR寄存器时,我盯着开发板上的LED发呆——明明按照手册写入了mtvec寄存器,为什么触发中断后程序还是跑飞了?这个问题困扰了我整整两天,直到在调试器…...
保姆级教程:在RK3588 Android12上配置CPU风扇温控,告别过热降频
RK3588 Android12风扇温控实战:从原理到调优的完整指南 当RK3588开发板在高负载运行时,你是否遇到过CPU温度飙升导致系统卡顿的情况?嵌入式开发者都知道,过热不仅影响性能,长期高温还会缩短硬件寿命。本文将带你深入理…...
Webots传感器实战:用C语言让机器人‘看见’并‘感知’速度(含激光雷达配置)
Webots传感器实战:用C语言构建多模态环境感知机器人系统 当仿真机器人需要在复杂环境中自主导航时,单一传感器往往难以提供足够的环境信息。Webots作为专业的机器人仿真平台,其传感器系统的灵活配置和精确模拟能力,让开发者能够在…...
CAST模型:流程性视频检索的时序一致性解决方案
1. CAST模型技术解析:重新定义流程性视频检索在当今视频内容爆炸式增长的时代,视频检索技术的重要性与日俱增。传统视频检索系统主要依赖全局视频-文本对齐,通过将视频片段和文本查询映射到共享嵌入空间来实现跨模态匹配。这种方法虽然简单有…...
收藏!全国首所网安本科高校2026招生!小白_程序员入行必看
收藏!全国首所网安本科高校2026招生!小白/程序员入行必看 全国首所独立设置的网络安全类公办本科高校2026年秋季在武汉招首批本科生,设4个紧扣网安的本科专业。该校产教融合扎实、硬件条件优,但存在不确定性强、转专业空间小、无…...
ncmdump终极指南:3分钟掌握NCM格式解密,解锁网易云音乐播放自由
ncmdump终极指南:3分钟掌握NCM格式解密,解锁网易云音乐播放自由 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经遇到过这样的困扰:从网易云音乐精心下载的歌曲,却只能在特定…...
CnOpenData 税收调查企业发明专利授权质量统计表
税收是支撑国家长期发展的根本基础。作为服务财税改革、加强财税管理的一项重要基础性工作,全国税收调查工作为税收政策制定提供了扎实的数据支撑;同时,它对于学者准确掌握税源情况、窥探经济发展形势起到重要作用。参与全国税收调查的企业分…...
【仅限前500名】VS Code MCP生态白皮书(含未公开API文档+3大厂商私有扩展协议逆向表)
更多请点击: https://intelliparadigm.com 第一章:VS Code MCP插件生态概览与白皮书价值定位 MCP(Model Communication Protocol)是微软联合开源社区推出的标准化协议,旨在统一大模型能力在编辑器中的调用方式。VS Co…...
