首先,安装一些常用的中文字体包:
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 网页字体显示不正确的问题。如果问题仍然存在,可能需要检查具体的网页使用了哪些特殊字体,并针对性地安装这些字体。
网友回复
python如何调用openai的api实现知识讲解类动画讲解视频的合成?
html如何直接调用openai的api实现海报可视化设计及文本描述生成可编辑海报?
f12前端调试如何找出按钮点击事件触发的那段代码进行调试?
abcjs如何将曲谱播放后导出mid和wav格式音频下载?
python如何将曲子文本生成音乐mp3或wav、mid文件
python中mp3、wav音乐如何转成mid格式?
js在HTML中如何将曲谱生成音乐在线播放并下载本地?
python如何实现在windows上通过键盘来模拟鼠标操作?
python如何给win10电脑增加文件或文件夹右键自定义菜单?
python如何将音乐mp3文件解析获取曲调数据?