首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Selenium 脚本在 CentOS 运行的几个问题

Selenium 脚本在 CentOS 运行的几个问题

原创
作者头像
王二蛋
发布2024-12-05 22:31:47
发布2024-12-05 22:31:47
5871
举报

在阅读这篇文章前,推荐一篇“好”文章:《熬夜整理》保姆级系列教程-玩转Wireshark抓包神器教程(8)-Wireshark的TCP包详解-下篇

理论+实践,非常不错的一篇Wireshark抓包教程,对抓包感兴趣的看完这篇就可以入门了。

背景

前两天用Python Selenium库写了个模拟用户在浏览器操作的脚本,作为一名业余选手,在本地运行成功后打算扔到云服务器上跑,没想到一路坎坷遇到了不少问题(主要是不懂)。本文就记录下在这个过程中遇到的问题以及解决方案,如果对各位有帮助还请点个赞支持一下小弟。

目的&结果

因为脚本中会运行 Chrome 浏览器,所以要在 CentOS 操作系统中安装 Chrome 浏览器, 否则执行脚本时会报错 NoSuchDriverException

安装时可以选择 Chrome Stable 或者 Chromium 这两个版本,本文都有记录,大家可选择其中一种。

我选择的是 Chromium ,因为安装过程非常快。

先说问题

问题说明

在执行安装操作前, 我先将问题抛出来。

不论是 Chrome Stable 还是 Chromium,在 CentOS 7 执行 yum install 时都会报错 Could not retrieve mirrorlist http://mirrorlist.centos.org?arch=x86_64&release=7&repo=sclo-rh error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error

这个问题的原因是因为 CentOS 7 的生命周期在2024年6月30日结束,mirrorlist.centos.org对于CentOS 7的支持也终止了。意味着CentOS 7用户将无法再通过该服务获取软件包更新。

这个问题怎么解决?

解决问题

我们需要把系统上的软件包镜像修改为vault.centos.org。

vault.centos.org是CentOS的归档站点,用于存储已经停止支持的CentOS版本的软件包和镜像。

有两种修改方式,选择任意一种方式执行脚本即可。

方式一:

代码语言:shell
复制
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#\s*baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

方式二:

代码语言:shell
复制
curl -s -L https://www.alphagnu.com/upload/centos7-repo-fix.sh | bash

安装 Chromium 版本

安装 Chromium 版本的浏览器是最方便的,我也是后面才找到的这种方法。

直接执行下面的两个安装命令

代码语言:shell
复制
#安装浏览器
yum install chromium
#安装驱动
yum install chromedriver 

安装成功后还需要将 chromedriver 可执行程序移动到系统路径,通常是 /usr/local/bin/ 或者 /usr/bin,可以通过 whereis chromedriver 查看安装的目录。

然后再为该驱动设置执行权限 sudo chmod +x /usr/local/bin/chromedriver

至此,脚本就可以成功运行了。如果到这里解决了你的问题,点个赞就可以关闭文章了。

安装 Chrome Stable 版本

在线安装

“CentOS 安装 Chrome“,在网上能搜到最多的就是这个版本。我先列一下步骤:

1.执行 sudo vi /etc/yum.repos.d/google-chrome.repo 在 CentOS 7 系统中添加谷歌官方 Yum 软件源。

2.添加 Yum 软件源信息:

代码语言:shell
复制
[google-chrome] 
name=google-chrome 
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch 
enabled=1 
gpgcheck=0 
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

3.执行 sudo yum info google-chrome-stable 查看谷歌 Chrome 浏览器的软件包信息。

4.执行 sudo yum install google-chrome-stable 进行安装。

5.如果执行到这一步没有出现问题,执行 google-chrome --version 查看版本。

6.最后将输出的版本替换下面命令中的{version},然后执行命令。

注意:

代码语言:shell
复制
#下载驱动
wget https://chromedriver.storage.googleapis.com/{version}/chromedriver_linux64.zip
#解压
unzip chromedriver_linux64.zip
#移动
mv chromedriver /usr/local/bin/
#设置执行权限
chmod +x /usr/local/bin/chromedriver

GLIBC 版本问题

如果在第4步骤,也就是执行 sudo yum install google-chrome-stable 命令时报错:

Error: Package: google-chrome-stable-130.0.6723.116-1.x86_64 (google-chrome)Requires: libc.so.6(GLIBC_2.25)(64bit)

这个时候就不要想着解决这个问题了,因为太麻烦。

离线安装

解决方案就是:直接下载 CentOS 7 支持的google-chrome-stable离线安装包手动安装。(选择一个chromedriver存在的版本)

当然,chromedriver 依然需要手动安装。

注意事项

注意:google-chrome-stable 和 chromedriver 版本一定要一致。

如果问题没有解决或者遇到文中无法下载的资源可以联系我,还请各位点个赞支持一下小弟。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 目的&结果
  • 先说问题
    • 问题说明
    • 解决问题
  • 安装 Chromium 版本
  • 安装 Chrome Stable 版本
    • 在线安装
    • GLIBC 版本问题
    • 离线安装
  • 注意事项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档