模拟用户在浏览器操作的脚本在 CentOS 7 运行出问题了!!!
文章目录
- 背景
- 目的&结果
- 先说问题
- 问题说明
- 解决问题
- 安装 Chromium 版本
- 安装 Chrome Stable 版本
- 在线安装
- GLIBC 版本问题
- 离线安装
- 注意事项
背景
前两天用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 版本一定要一致。
如果问题没有解决或者遇到文中无法下载的资源可以联系我,还请各位点个赞支持一下小弟。