【八】centos7.6安装chrome和chromedriver并启动selenium

学习来源:

安装chrome和chrome driver
-----https://blog.csdn.net/zdlcome/article/details/133813441
安装Python11
-----https://blog.csdn.net/weixin_43741408/article/details/130251102
chromedriver下载地址
-----https://googlechromelabs.github.io/chrome-for-testing/

安装chrome

建议先直接下载rpm包或者用命令

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
yum install google-chrome-stable_current_x86_64.rpm

安装成功后,打开 Google 浏览器时,会过一会闪退,需要在文件中添加配置。
1、进入指定文件夹:cd /opt/google/chrome
2、修改文件配置:vim google-chrome
3、在文件的最后一行接着写上:–user-data-dir --no-sandbox

直接运行会有错误,有一些依赖包确实,按照提示的包名安装上就可以了,
还有一个报错大概是linux运行浏览器需要安装 XVFB(X Virtual Framebuffer)提供一个虚拟的
X server 环境:

yum install Xvfb

然后验证,有对应版本输出应该就是可以了

google-chrome --version

安装chromedriver

下载对应版本的驱动,然后拖到云服务器上
然后解压,我的话是直接放在了项目里面,记得要修改权限

unzip chromedriver-linux64.zip
chmod 777 chromedriver

在这里插入图片描述

安装Python11

安装依赖

yum -y install  make gcc epel-release zlib-devel openssl-devel bzip2-devel ncurses-devel gdbm-devel readline-devel sqlite-devel libffi-devel tk-devel xz-devel

安装openssl1.1.1(python3.11需要1.1.1版本以上的openssl)

yum install -y openssl-devel openssl11 openssl11-devel

配置openssl环境变量,可在 ~/.bashrce 文件中配置(上一步如果没做,这步即可忽略)

export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)

下载并解压python3.11.0,我建议直接去下载然后再拖到服务器

wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz
tar -zxvf Python-3.11.0.tgz

进入python解压目录,指定安装目录,加载ssl模块

./configure --prefix=/opt/soft/python --with-ssl

编译并安装

make && make install

完成安装,验证一下版本是否正确

/opt/soft/python/bin/python3.11 -V

配置环境变量

export_PATH=/opt/soft/python/bin/:$PATH
LD_LIBRARY_PATH=/opt/soft/python/lib/:$LD_LIBRARY_PATH

创建软连接,方便调用

ln -sfn /opt/soft/python/bin/python3.11 /usr/bin/python3
ln -sfn /opt/soft/python/bin/pip3.11 /usr/bin/pip3

准备脚本运行测试

再Python文件中要写这些,不然会报错

chrome_options = Options()chrome_options.add_argument('--headless')chrome_options.add_argument('--disable-gpu')chrome_options.add_argument("--no-sandbox")chrome_options.add_argument('--disable-dev-shm-usage')# linuxsev = Service("./chrome_linux/chromedriver")  # 对应的chromedriver地址# 创建浏览器对象driver = webdriver.Chrome(service=sev, options=chrome_options)

这里运行的时候应该能成。

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

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

相关文章

个人网站快速搭建手册:低成本,高效率,轻松发布

​🌈个人主页:前端青山 🔥系列专栏:React篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来-快速构建个人站|博客|系统,低成本发布上线 目录 前言 博主主页搭建案例 虚拟主机|服务器|域名 使用免费二级…

如何挑选家用洗地机?需要注意什么?这四款洗地机性价比超高

洗地机结合了扫、拖、吸的功能,一台机器,一个推拉的动作便可以清理干净地面上的干湿垃圾,大大的节省了我们做家务的清洁时间,提升了生活质量。但是面对市面上众多的洗地机型号,我们要怎么去挑选呢,需要主要…

Rancher-Kubewarden-保姆级教学-含Demo测试

一、什么是Kubewarden? What is Kubewarden? | Kubewarden 1、就是容器集群的准入策略引擎。 1、使用的策略其实就是k8s原生的security context. 2、使用WebAssembly来编写策略。 1、WebAssembly,可以使用擅长的开发语言来编写策略。(下面的…

TEINet: Towards an Efficient Architecture for Video Recognition 论文阅读

TEINet: Towards an Efficient Architecture for Video Recognition 论文阅读 Abstract1 Introduction2 Related Work3 Method3.1 Motion Enhanced Module3.2 Temporal Interaction Module3.3 TEINet 4 Experiments5 Conclusion阅读总结 文章信息; 原文链接:https:…

做题杂记666

[XYCTF2024] 铜匠 题目描述: from Crypto.Util.number import * from secrets import flagm bytes_to_long(flag) m1 getRandomRange(1, m) m2 getRandomRange(1, m) m3 m - m1 - m2def task1():e 149p getPrime(512)q getPrime(512)n p * qd inverse(e,…

Redis基础面试知识点(1)

相比于C字符串,SDS的优势: O(1)获取字符串的长度不会缓冲区溢出减少修改字符串时所需的内存重新分配的次数(空间预分配、惰性空间释放)二进制API安全(通过len获取长度)兼容部分C字符串函数 Redis hash策略…

干货分享:AI知识库-从认识到搭建

随着知识库的出现,人工智能也逐渐加入进来,形成了“AI知识库”。也许将AI和知识库拆开,你能理解是什么意思,但是当两个词结合在一起时,你又真的能理解它是做什么的吗?这就是今天我们要来聊的话题&#xff0…

全网最详细IOS系统APP上架教程(二)

上一篇讲解了IOS系统APP上架注册苹果开发者账号需要的材料、邓白氏编码的注册等,本文将继续讲解后续流程。 详细步骤 三、申请苹果开发者账号 在苹果手机上安装Apple Developer 打开Apple Developer,用之前注册好的Apple ID登录,输入姓名身…

J1019基于SpringBoot的护肤品推荐系统设计与实现(源码+包运行+技术指导)

项目描述 临近学期结束,开始毕业设计制作,你还在做java程序网络编程,期末作业,老师的作业要求觉的困难吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SpringBoot的护…

QT+网络调试助手+TCP服务器

一、UI界面设计 二、单线程 代码设计 1、 查找合法的本地地址&#xff0c;用于当作服务器的IP地址 #include <QThread> #include <QTcpSocket> #include <QNetworkInterface> #include <QMessageBox>QList<QHostAddress> ipAddressesList QNe…

排序算法之希尔排序(缩小增量排序)

希尔排序是插入排序的优化&#xff0c;如果不了解插入排序可以看排序算法之插入排序-CSDN博客这篇博客&#xff0c;希尔排序算法通过对原始数据集使用 gap 分组的方法&#xff0c;先将数据分组进行插入排序&#xff0c;随着排序的进行&#xff0c;逐渐减小 gap 的值&#xff0c…

怎样的跨网软件,可以实现网间数据的安全收发?

网络隔离已是较为常见的网络安全保护措施&#xff0c;比如防火墙、网闸、VLAN&#xff0c;云桌面虚拟环境等方面进行隔离。像一些科技研发型企业&#xff0c;不仅仅是内外网隔离&#xff0c;甚至还划分办公网、研发网、测试网、生产网等&#xff0c;防止研发资料、设计资料等敏…

Redis——缓存雪崩、缓存穿透、缓存击穿

在项目中&#xff0c;通常会使用数据库比如 MySQL 存储应用数据&#xff0c;但是当数据太多之后&#xff0c;比如多了几十万条或上百万条的商品信息&#xff0c;这个时候查询商品数据的速度会很慢&#xff0c;影响用户体验。此时一般我们会选择将部分商品信息缓存起来&#xff…

JavaSE基础小知识Ⅱ(很容易错!!!)

1. 变量被final修饰后不能再指向其他对象&#xff0c;但可以重写 如果是引用变量被final修饰&#xff0c;那么的确如此&#xff1b; 基本变量不能重写 2. 下列代码的输出结果是&#xff1f; public class Test {static {int x 5; }static int x,y; public static void ma…

java--io流(二)

一、打印流&#xff08;PrintStream[字节]、PrintWriter[字符]&#xff09; &#xff08;基本上可以代替前面所学的字节、字符输出流&#xff09;&#xff0c;二者关于打印数据功能相同&#xff08;都方便且高效&#xff09;&#xff0c;但是关于数据写出不同&#xff0c;前者…

数据的均匀化分割算法(网格划分法、四叉树法(含C++代码))

数据的均匀化分割主要是指在分割过程中尽可能均匀地将数据点分布在各个子区域中&#xff0c;以保持数据分布的平衡和优化数据结构的性能。以下是几种可以实现数据均匀化分割的方法&#xff1a; 一. 网格划分法 1. 基本概念 虽然传统的网格划分法不是动态调整的&#xff0c;但通…

3款超好用的智能AI写作神器,不容错过!

在当代写作领域&#xff0c;人工智能&#xff08;AI&#xff09;辅助的写作工具已显著地改变了创作过程&#xff0c;不仅优化了撰写效率还提高了内容质量。为了协助读者更好地了解并利用这些先进的工具&#xff0c;本文将详细评述3种卓越的AI驱动的写作辅助软件&#xff0c;每一…

AJ65SBT2B-64DA 三菱CC-Link D/A转换模块

AJ65SBT2B-64DA 是将数字值(16位有符号BIN数据)转换为模拟值(电压或电流)的模块。 AJ65SBT2B-64DA参数说明&#xff1a;4通道&#xff1b;输入分辨率0~12000&#xff0c;-12000~12000&#xff0c;-16000~16000&#xff1b;输出DC-10~10V&#xff0c;DC0~20mA&#xff1b;转换速…

028.实现 strStr()

题意 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 难度 简单 示例 例 1 输入&#xff1a;hays…