使用Python3 + selenium 3下环境渲染图片WebDriverException
个人环境: Anaconda 3, Python3.6, window 7, selenium 3
使用 pyecharts 渲染成图片一直是开发者比较关心的功能,pyecharts 提供了 selenium, phantomjs 和 pyppeteer 三种方式。具体可以参看官网:https://pyecharts.org/#/zh-cn/render_images
snapshot-selenium 是 pyecharts + selenium 渲染图片的扩展,使用 selenium 需要配置 browser driver,这部分可以参考 selenium-python 相关介绍,推荐使用 Chrome 浏览器,可以开启 headless 模式。目前支持 Chrome, Safari。
渲染为图片的时候需要额外的第三方程序包支持,包名:selenium,可以通过执行:pip install selenium 执行安装。渲染为图片的时候,需要用的函数为:make_snapshot。
from pyecharts.charts import Bar
# 导出图片,需要引入以下对象
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot
bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家 A", [5, 20, 36, 10, 75, 90])
# render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
# 也可以传入路径参数,如 bar.render("mycharts.html")
# 默认模式
bar.render()
# 指定路径
bar.render("mycharts.html")
# 渲染成图片
make_snapshot(snapshot, bar.render(), "bar0.png")
这是第一次直接执行了,然后报错:
WebDriverException: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
即谷歌浏览器的驱动不在PATH下。
详细如下图所示:
这一错误是因为没有配置好chromedriver,怎么配置呢?(我用的是Chrome)
方法一:下载对应版本的chromedriver.exe放到谷歌浏览器的安装文件夹下
pyecharts生成图片时,需要完成两件事:
- 安装snapshot_selenium:
pip install snapshot_selenium
(需要先安装selenium:pip install selenium
) - 设置chromedriver驱动到PATH
具体步骤如下:
-
打开Chrome输入
chrome://version
来查看Chrome版本信息,如下图所示,我的版本是85
-
访问网站,然后选择合适版本的driver,下载到你自定义的位置,进行配置
note.txt里可以查看对应的版本信息。
-
配置如下:将下载的zip包解压后,把chromedriver.exe拷贝到谷歌浏览器的安装目录,同时配置PATH 即可。
打开开始菜单->我的电脑(或计算机)->系统属性->高级系统设置->环境变量,编辑用户变量里的PATH,在最后面添加;C:\Users\Xu\AppData\Local\Google\Chrome\Application(我的Chrome安装目录)
这里,我分别试过在系统的环境变量的用户变量的PATH和系统变量的PATH下,添加chromedriver.exe所在的路径,运行程序都失败了。
方法二:将chromedriver.exe添加到python的根目录下
我直接放在我的Anaconda目录下:
你也可以直接添加到你的Python安装目录下:
第二个方法,我可以成功运行程序。
欢迎各位关注我的个人公众号:HsuDan,我将分享更多自己的学习心得、避坑总结、面试经验、AI最新技术资讯。
