问题记录:CentOS运行模拟浏览器的Python脚本

105 阅读3分钟

背景

前两天用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版本的软件包和镜像。

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

方式一:

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-*

方式二:

curl -s -L https://www.alphagnu.com/upload/centos7-repo-fix.sh | bash

安装 Chromium 版本

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

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

#安装浏览器
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 软件源信息:

[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},然后执行命令。

注意:

#下载驱动
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 版本一定要一致。

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