百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Step by Step之CentOS7安装Selenium篇

csdh11 2024-12-27 12:37 27 浏览

自动获取信息免不了使用Selenium,毕竟直接用chrome访问兼容性最好,MAC下的Selenium好弄,但是在云服务器上花了一两天时间,碰到好多意外情况,值得记录一下。


一、基础环境信息

腾讯云服务器,因为申请的较早,使用了CentOS7.6,4核8G。

Python 3.6.8,Selenium 3.141.0。

Python的安装很简单,就不再赘述,Selenium直接用pip3安装即可。

二、具体步骤

1、Linux上安装Chrome浏览器

这是最坑的一个步骤,花的时间最长。

最初肯定是去下载稳定版本,于是使用wget下了一个126.0.6478.182版本。

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

结果使用yum或rpm安装chrome时提示,需要lib.so.6(GLIBC_2.25)(64bit)。

虽然提示可以用--skip-broken去跳过问题,但使用后无济于事,仍然报错,于是开始百度glibc库的升级,愕然发现也是一个大工程,简单来说就是2.25貌似不太稳定,建议直接到2.31,于是继续按步骤操作。

(1)下载glibc版本,检查升级前依赖

wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.31.tar.gz
tar -xzvf glibc-2.31.tar.gz
cd glibc-2.31
cat INSTALL | grep -E "newer|later" | grep "*"
# 输出如下
* GNU 'make' 4.0 or newer
* GCC 6.2 or newer
* GNU 'binutils' 2.25 or later
* GNU 'texinfo' 4.7 or later
* GNU 'bison' 2.7 or later
* GNU 'sed' 3.02 or newer
* Python 3.4 or later
* GDB 7.8 or later with support for Python 2.7/3.4 or later
* GNU 'gettext' 0.10.36 or later

检查了一下,发现在CentOS7.6版本中,make为3.82,gcc为4.x,gdb为7.6,需要升级。

(2)依赖包升级

首先是make

wget https://mirrors.aliyun.com/gnu/make/make-4.3.tar.gz
tar -xzvf make-4.3.tar.gz
cd make-4.3
mkdir build
cd build
../configure --prefix=/opt/make  # 安装到/opt目录下
make && make install
ln -sf /opt/make/bin/make /usr/bin/make

# 最终验证make版本,应为4.3
make --version

然后是gcc

wget https://ftp.gnu.org/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz --no-check-certificate
tar -xzvf gcc-9.3.0.tar.gz
cd gcc-9.3.0
# 去gnu网站下载4个依赖包,这里花了不少时间,可能是网络带宽问题
./contrib/download_prerequisites
mkdir build
cd build
../configure --enable-checking=release --enable-language=c,c++ --disable-multilib --prefix=/usr
make -j4  # 使用4个核心,把服务器资源用足
make install

# 最终验证gcc版本,应为9.3.0
gcc -v

最后是gdb。

wget http://ftp.gnu.org/gnu/gdb/gdb-7.8.tar.gz
tar -xzvf gdb-7.8.tar.gz
cd gdb-7.8
mkdir build
cd build
../configure --prefix=/usr
make
make install
# 此处会提示错误——configure: error: no termcap library found
## 先安装termcap
wget https://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz
tar -xzvf termcap-1.3.1.tar.gz
cd termcap-1.3.1
mkdir build
cd build
configure
make
make install
# 然后回到gdb的build目录下重新执行编译
cd gdb-7.8/build
make
make install

# 最终验证gdb版本,应为7.8
gdb -v

(3)glibc升级

cd glibc-2.31
mkdir build
cd build
../configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks --disable-werror
make -j4
make install
make localedata/install-locales  # 解决新启动远程终端报警提示问题,这一步的时间最长

# 最终验证glibc版本
strings /lib64/libc.so.6 | grep -E "^GLIBC" | sort -V -r | uniq
# 以下为验证命令输出
GLIBC_PRIVATE
GLIBC_2.30
GLIBC_2.29
GLIBC_2.28
GLIBC_2.27
GLIBC_2.26
GLIBC_2.25
GLIBC_2.24
GLIBC_2.23
GLIBC_2.22
GLIBC_2.18
GLIBC_2.17
GLIBC_2.16
GLIBC_2.15
GLIBC_2.14
GLIBC_2.13
GLIBC_2.12
GLIBC_2.11
GLIBC_2.10
GLIBC_2.9
GLIBC_2.8
GLIBC_2.7
GLIBC_2.6
GLIBC_2.5
GLIBC_2.4
GLIBC_2.3.4
GLIBC_2.3.3
GLIBC_2.3.2
GLIBC_2.3
GLIBC_2.2.6
GLIBC_2.2.5

注意的是升级最终是以一个错误提示结束显示,一开始吓了一跳,以为没成功。

(4)安装Chrome

花费了大半天搞定glibc,结果安装chrome出现同样的提示,继续百度+大模型搜索,找到一篇文章说CentOS7无法安装126版本,貌似7.9和7.6版本都不行,只能使用124的版本。

 wget http://dist.control.lth.se/public/CentOS-7/x86_64/google.x86_64/google-chrome-stable-124.0.6367.118-1.x86_64.rpm
 yum install google-chrome-stable-124.0.6367.118-1.x86_64.rpm

# 最终验证chrome版本,应为124.0.6367.118
google-chrome --version

2、安装Chrome WebDriver

要安装与chrome版本对应的webdriver,可以去https://getwebdriver.com/chromedriver,页面上能看到的都是最新稳定版、Beta版、研发版或实验性版本(Canary),即126版本及更新的,要找之前的版本可以使用JSON API的结果,点击下图中的链接:

会列出所有版本的相关信息,找到124对应的版本号,发现有好多个。

可以选择与chrom的小版本号118相近的,如91、155、201等,试验了一下,发现这几个版本都可以使用,当然,大版本号不同是无法使用的,126的chromedriver启动就会提示版本信息不匹配。

wget https://storage.googleapis.com/chrome-for-testing-public/124.0.6367.201/linux64/chromedriver-linux64.zip
unzip chromedriver-linux64.zip
cd chromedriver-linux64
cp chromedriver /usr/local/bin

# 最终验证chromedriver版本,应为124.0.6367.<小版本号>
chromedriver --version

3、脚本验证

在脚本验证环节也出了一些小状况,因为在mac上用了比较熟,结果因为环境不同,相同的无头(headless)脚本在linux下就是不能用,后来发现,需要使用无沙箱模式启动才可以。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
browser = webdriver.Chrome(options = options)
// 使用browser去浏览,使用等
browser.quit()

相关推荐

全能硬件大师AIDA64 v4.60 最新绿色版下载

IT之家(www.ithome.com):全能硬件大师AIDA64v4.60最新绿色版下载今天,国外FinalWire公司正式发布全能系统硬件大师AIDA64v4.60最新版。本次新版加入14款...

2023年4款Mac软件推荐,绝不失望(mac2020i3)

1.VDown-免费下载视频是最近mac上出现的免费的视频下载软件,支持超过900多个站点,虽然看上去支持的站点略少于Downie,但是熟悉的网站B站,Youku全部都有,国外的站点,只要有办法访问...

实验设计和数据分析必不可少的Design-expert,谁还不会用呢?

Design-Expert软件介绍...

关于视频格式的那些事儿(视频格式作用)

闲暇之余,相信很多人的选择就是看视频。电视剧、综艺、手机短视频,总有一款适合你。然而播放这些视频时,你是否注意到了文件名后各种各样的后缀名了呢?是否会好奇为什么会存在这么多视频格式?不同的格式是不是影...

机器人学习也要提速提质!智元机器人发布首个通用具身基座大模型

去年已实现量产近千台的人形机器人公司智元机器人再度对外宣布重磅消息。3月10日,该公司正式发布首个通用具身基座大模型,即智元启元大模型(GenieOperator-1)。“GO-1大模型借助人类和多...

软网推荐:硬盘管理用好Macrorit Partition Expert

平时我们经常需要对硬盘进行管理,比如为了释放空间,需要将隐藏分区删除并重建分区;出于隐私保护,需要彻底删除硬盘分区上的数据;硬盘出现坏道需要将其屏蔽等等。诸如此类的操作,现在借助免费且图形化操作的分区...

Design-Expert 12.0 安装教程(附安装包下载)

Design-Expert12.0软件介绍是一款由Stat-EaseInc开发的专用于执行实验设计(DOE)的软件。它提供比较测试、筛选、表征、优化、稳健的参数设计、混合物设计和组合设计等功能,并...

不用在PLC内编程,实现西门子与罗克韦尔(AB)PLC之间数据通讯

巨控NET400数据网关支持多种PLC之间、PLC与智能仪表之间多对多通讯,支持以太网,串口设备混合数据交换;无需PLC内编程开发,只需在智能网关的参数管理软件上配置数据的起始地址和数量即可,支持热插...

S7-1500PLC做OPC UA通信服务器(s7-1200 opc ua)

OPCUA概述OPCUA是一项开放标准,适用于从机器到机器间(M2M)的水平通信和从机器直到云端的垂直通信。该标准独立于供应商和平台,支持广泛的安全机制,并且可以与PROFINET共享同一工...

WINCC配置OPC UA服务器的步骤和故障解决

WINCC配置OPCUA服务器的步骤和故障解决本次配置实例的环境:在同一局域网内的两台计算机,均为windows7SP1系统一台计算机安装wincc7.4,并建立项目,项目在运行状态一台计算机安...

视频格式在线转换,五种超实用的视频格式转换工具!

视频内容无处不在,从教育课程到娱乐电影,从社交媒体分享到在线会议,视频已成为我们日常生活中不可或缺的一部分。然而,不同的设备和平台支持的视频格式各异,会导致视频文件在某些设备上无法播放。因此,掌握视频...

支持裸眼3D:长虹X1手机/全新CHIQ电视发布

IT之家讯10月16日消息国产传统家电品牌长虹此前也一直有智能手机产品,但关注度并不高。今天下午,长虹举行发布会,发布了两款以裸眼3D技术为卖点的产品,分别为长虹X1手机和全新CHIQ曲面电视。长...

h265和h264有什么区别(h265和h264有什么区别)

目前很多摄像机采用了H.265的编码标准,H.264编码的摄像机逐渐减少,为什么H.265会流行?H.264和H.265有何不同?一、什么是H.265...

中文白皮书:面向视频编解码器和图形引擎的前沿多媒体方案 WP497

该白皮书探讨了ZynqUltraScale+MPSoC的多媒体功能。MPSoC基于Zynq-7000SoC,包括一个可编程逻辑(PL)的桥接处理系统(PS),但它在ZynqUltr...

科达NVR家族换新装:推出首款通用型H.265+4K NVR

近期,科达推出业内首款通用型H.265+4KNVR——NVR1821,吹响NVR家族全面升级的号角。据了解,保持原有通用型产品“高性价比”定位的基础上,全新NVR1821系列增加了4路4K解码+1路...