麒麟环境下Selenium的使用

本文主要介绍了在内网环境下、服务主机无域名的情况下,为了抓取内网其他系统网页数据,安装使用Selenium的方,并详细介绍了离线安装python依赖包的方法。服务主机操作系统为麒麟V10 SP3。

一. 查看可以安装的浏览器安装包

1. 更新软件包索引

首先确保软件包列表是最新的:

sudo yum makecache
或使用 dnf(如果系统已迁移到 dnf):

bash
sudo dnf makecache

2. 搜索可安装的浏览器

使用以下命令搜索所有可用的浏览器相关包:

yum list available | grep -iE 'browser|chromium|firefox|edge|opera'
或更精确搜索:

bash
yum search browser
常见浏览器包名示例:
浏览器	可能包含的包名	备注
Firefox	firefox, mozilla-firefox	开源浏览器,通常官方仓库提供
Chromium	chromium, chromium-browser	开源版 Chrome,可能版本较旧
Epiphany	epiphany	GNOME 默认浏览器
Falkon	falkon	KDE 开发的轻量浏览器
Opera	opera-stable	需手动添加仓库

3. 查看具体包信息

如果想查看某个包的详细信息(如版本、依赖):

yum info firefox  # 以 Firefox 为例
输出示例:

Available Packages
Name         : firefoxs
Version      : 91.5.0
Release      : 1.oe1
Architecture : x86_64
Size         : 85 M
Source       : firefox-91.5.0-1.oe1.src.rpm
Repository   : OS
Summary      : Mozilla Firefox Web Browser
URL          : https://www.mozilla.org/firefox/
License      : MPLv2.0
Description  : Firefox is an open-source web browser.

4. 安装浏览器

选择需要的浏览器包名进行安装,例如:

sudo yum install -y firefox      # 安装 Firefox
sudo yum install -y chromium    # 安装 Chromium

验证 
firefox --version

二. 安装 GeckoDriver(用于 Selenium 控制)

Firefox 的 GeckoDriver,需下载匹配版本。

1. 下载 GeckoDriver

在可联网机器上操作:

wget https://github.com/mozilla/geckodriver/releases/download/v0.34.0/geckodriver-v0.34.0-linux64.tar.gz
注:替换 v0.34.0 为 最新版本。

2.安装并配置

# 解压并移动到 /usr/local/bin
tar -xzf geckodriver-*.tar.gz
sudo mv geckodriver /usr/local/bin/

# 赋予执行权限
sudo chmod +x /usr/local/bin/geckodriver

# 验证
geckodriver --version

三. 安装配置 Selenium 自动化

1.安装 Python 和 pip

若未安装:

sudo yum install -y python3 python3-pip

2.离线安装 Selenium

在可联网机器下载:

pip download selenium --dest /tmp/offline_pkgs 


将 .whl 文件复制到麒麟V10,然后安装:


sudo pip3 install /tmp/offline_pkgs/selenium-*.whl
或
pip install --no-index --find-links=/tmp/offline_pkgs selenium-*.whl

3.测试脚本

创建 waterfox_test.py:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

options = Options()
options.binary_location = "/opt/firefox/firefox"  # 指定 firefox 路径
driver = webdriver.Firefox(options=options)

driver.get("https://192.168.1.1")
print(driver.title)
driver.quit()
运行:

bash
python3 waterfox_test.py

四.Python 依赖包离线安装详解

离线下载 Python 依赖包,适用于 麒麟(Kylin)V10 x86_64 系统,并指定使用 阿里云镜像源 加速下载。以下是详细解析和优化建议:

1. 依赖包下载

在可联网机器下载,命令解析

1.1直接指定多个包名下载

命令格式

pip download -d ./kylin_packages 
  --platform manylinux2014_x86_64   # 指定平台(麒麟V10用此标签)
  --only-binary=:all: 
  --python-version 3.10 
  --no-deps   # 可选:不自动下载依赖
  -i https://pypi.tuna.tsinghua.edu.cn/simple   # 国内镜像加速
  package1 package2 package3  # 直接列出包名
示例
bash
pip download -d ./offline_packages 
  --platform manylinux2014_x86_64 
  --python-version 3.10 
  numpy pandas torch==2.0.1
1.2通过 requirements.txt 批量下载

步骤1:创建 requirements.txt 文件 将需要下载的包名及版本写入文件:

#requirements.txt
numpy>=1.21.0
pandas==1.3.5
torch==2.0.1+cpu  # 指定CPU版本

也可根据现有项目生成
pip 
步骤2:下载所有依赖包
```bash
pip download -r requirements.txt -d ./kylin_packages 
  --platform manylinux2014_x86_64 
  --python-version 3.10 
  --only-binary=:all: 
  -i https://pypi.tuna.tsinghua.edu.cn/simple
Python包下载参数说明
参数 作用 注意事项
-r requirements.txt 指定依赖列表文件 文件需存在且格式正确
-d ./kylin_packages 下载到本地目录 目录会自动创建
–python-version 3.10 指定 Python 版本 必须与目标环境一致
–platform manylinux2014_x86_64 指定麒麟 V10 兼容的 Linux 平台 确认架构是否为 x86_64
–only-binary=:all: 仅下载二进制包(避免源码编译) 部分包可能无二进制版本
–no-deps 不下载依赖的依赖 需手动处理递归依赖
-i https://mirrors.aliyun.com/pypi/simple/ 使用阿里云镜像源 加速下载

2.依赖包安装

离线安装方法 将 ./kylin_packages 目录复制到目标机器后:

pip install --no-index --find-links=./kylin_packages -r requirements.txt

3.常见问题及优化建议

3.1. 下载失败:Could not find a version
原因:某些包在阿里云镜像中不存在,或平台不兼容。

解决:

移除 --only-binary=:all: 尝试下载源码包:

bash
pip download ... --no-binary=:all:  # 仅下载源码
换回官方源(移除 -i 参数):

bash
pip download ... -i https://pypi.org/simple/
3.2. 依赖缺失(因 --no-deps 导致)
风险:手动下载的包可能缺少依赖项,导致离线安装失败。

解决:

方法 1:移除 --no-deps,自动下载所有依赖:

bash
pip download ...  # 去掉 --no-deps
方法 2:递归下载依赖项(推荐):

bash
# 使用 pipdeptree 生成完整依赖列表
pip install pipdeptree
pipdeptree -r -p $(cat requirements.txt | cut -d'=' -f1) > full_requirements.txt
pip download -r full_requirements.txt -d ./kylin_packages ...

3. 平台或 Python 版本不匹配
检查目标环境:

bash
# 在麒麟 V10 上运行:
uname -m  # 确认架构(x86_64/aarch64)
python3 --version  # 确认 Python 版本
调整参数:

如果是 ARM 架构(如鲲鹏 CPU):

bash
--platform manylinux2014_aarch64
4. 加速下载技巧
并行下载:使用 xargs 或 parallel 加速:

bash
cat requirements.txt | xargs -n 1 -P 8 pip download -d ./kylin_packages ...
预缓存包:先在线环境安装,再利用缓存下载:

bash
pip install -r requirements.txt  # 在线安装
pip download -r requirements.txt -d ./kylin_packages --no-deps  # 从缓存提取
完整优化命令示例
bash
# 递归下载所有依赖(推荐)
pip download -r requirements.txt -d ./kylin_packages 
  --python-version 3.10 
  --platform manylinux2014_x86_64 
  --only-binary=:all: 
  -i https://mirrors.aliyun.com/pypi/simple/

# 或手动处理依赖树
pip install pipdeptree
pipdeptree -r -p $(cat requirements.txt | cut -d'=' -f1) > full_requirements.txt
pip download -r full_requirements.txt -d ./kylin_packages 
  --python-version 3.10 
  --platform manylinux2014_x86_64 
  -i https://mirrors.aliyun.com/pypi/simple/

总结
问题类型	解决方案
下载失败	换源、允许源码包、检查平台
依赖缺失	移除 --no-deps 或递归下载
速度慢	使用并行下载或预缓存
版本不匹配	检查 --python-version 和 --platform
按需调整参数即可高效完成离线包下载!
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容