python - 不支持直通,GL 被禁用
问题描述
我尝试使用 selenium 和 webdriver_manager.chrome 抓取特定站点,而我的代码完全抓取了该站点的元素。但爬取后,控制台窗口出现如下错误信息。
ERROR:gpu_init.cc(426) Passthrough is not supported, GL is disabled
当我第一次找到它时,我取消了 chrome 的硬件硬件加速,它也没有解决问题。
解决方案
测试环境
Windows 操作系统,Chromedriver 版本 89,无头模式
解决方案
我不确定这是否可以解决您的问题,因为错误消息略有不同。
我没记错,错误消息Passthrough is not supported, GL is swiftshader
在 Chromedriver 版本 89 之后显示为错误(但不确定)[1]。
在 Windows 的情况下,--headless
需要--disable-gpu
选项以使 chromedriver 作为无头模式工作 [2]。由于错误 [3],Linux似乎--disable-gpu
也需要它。
--headless
如果同时删除和--disable-gpu
选项,则不会出现错误消息。但是,chromedriver 不再作为无头模式工作。就我而言,错误消息不会影响无头 chrome 的操作。正如我发现的那样,“通常情况下,Chrome 会在没有 GPU 的情况下恢复工作。但是,为了获得一致的结果,遥测需要 GPU [4] 的存在。”
我还应用
--disable-software-rasterizer
了禁用 WebGL [5] 的选项。在无头操作下不再显示错误消息。
参考
[1] https://reddit.com/r/chrome/comments/n6qywt/hardware_acceleration_fail_in_chrome_on_linux/
[2] https://developers.google.com/web/updates/2017/04/headless-chrome
[3] https: //bugs.chromium.org/p/chromium/issues/detail?id=737678
[4] https://groups.google.com/a/chromium.org/g/telemetry/c/bEgV1EH63eA
[5] https: //bugs.chromium.org/p/chromium/issues/detail?id=617551
推荐阅读
- sql - GCP SQL Server - 授予和撤销用户
- azure-synapse - azure synapse on demand,外部表是否缓存?
- c# - 如何仅将 JSON 数据的某些属性反序列化到 C# 中的列表中
- python - python3中的ceil或floor datetime有什么好主意吗?
- vba - Selenium (VBA / CHROME) - 按 id 查找元素
- php - 即将到来的 PHP8 的扩展运算符和它预先存在的紧凑函数有什么区别?
- android - Android Kotlin:“findViewById
" 与 "findViewById() as Typ" - java - 为什么 BeforeAllCallback 没有 ParameterResolvers?
- python - 如何使用 Flask-SQLAlchemy 在 postgres sql 中定义一个 2 字节整数?
- angular - 用于显示数据的 Datatable Material 和 Angular 问题