首先,安装一些常用的中文字体包:
sudo yum install -y wqy-microhei-fonts wqy-zenhei-fonts cjkuni-uming-fonts2. 安装更多字体
如果上述字体不足以解决问题,可以安装更多字体:
# 安装所有可用的字体包 sudo yum install -y xorg-x11-fonts-* # 安装 Google Noto 字体(包含广泛的语言支持) sudo yum install -y google-noto-sans-cjk-fonts google-noto-serif-cjk-fonts3. 手动安装 Windows 字体
如果网页使用的是 Windows 特有的字体(如微软雅黑、宋体等),可以手动从 Windows 系统复制这些字体:
# 创建字体目录 sudo mkdir -p /usr/share/fonts/windows # 将字体文件复制到该目录(需要先从 Windows 系统获取字体文件) # 例如:sudo cp /path/to/msyh.ttf /usr/share/fonts/windows/ # 设置权限 sudo chmod 644 /usr/share/fonts/windows/* # 更新字体缓存 sudo fc-cache -fv4. 在 Selenium 中设置字体渲染选项
在 Selenium 代码中添加特定的 Chrome 选项来改善字体渲染:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--font-render-hinting=none") # 禁用字体微调
chrome_options.add_argument("--disable-gpu") # 禁用 GPU 加速
chrome_options.add_argument("--force-device-scale-factor=1") # 强制缩放因子
# 如果使用无头模式
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(options=chrome_options) 5. 使用字体替换如果特定字体无法获取,可以使用 CSS 来强制替换网页中的字体:
# 在页面加载后执行 JavaScript 来替换字体
driver.execute_script("""
document.body.style.fontFamily = "WenQuanYi Micro Hei, sans-serif";
var all = document.getElementsByTagName("*");
for (var i=0; i<all.length; i++) {
all[i].style.fontFamily = "WenQuanYi Micro Hei, sans-serif";
}
""") 6. 检查字体是否正确安装可以使用以下命令检查系统中已安装的字体:
fc-list :lang=zh
这将列出所有支持中文的字体。
7. 重启字体服务安装新字体后,确保重新加载字体缓存:
sudo fc-cache -fv
通过以上步骤,应该能够解决 CentOS 中 Selenium 网页字体显示不正确的问题。如果问题仍然存在,可能需要检查具体的网页使用了哪些特殊字体,并针对性地安装这些字体。
网友回复
有没有免费让ai自动帮你接管操作电脑的mcp服务?
mcp为啥用Streamable HTTP 替代 HTTP + SSE?
scratchjr有没有开源的前端html网页版本源代码?
多模态大模型能否根据ui交互视频来来模仿写出前端交互动画效果ui代码?
如何用阿里云oss+函数计算fc+事件总线EventBridge+消息队列+数据库+redis缓存打造一个高并发弹性系统?
阿里云函数计算 FC如何在海外节点搭建一个代理网络?
ai studio中gemini build的代码如何发布到github pages等免费网页托管上 ?
如何在cursor、qoder、trae中使用Claude Skills功能?
有没有不用u盘就能重装系统的开源工具?
python如何固定摄像头实时计算停车场停车位剩余数量?


