macOS 11系统下Python3运行InstaPy报无法连接geckodriver服务错误
原始报错信息
InstaPy Version: 0.6.13 ._. ._. ._. ._. ._. ._. ._. ._. ._. Workspace in use: "/Users/*****/InstaPy" Traceback (most recent call last): File "/Users/*****/Perso/botinsta/instapy-quickstart-master/run/../quickstart.py", line 15, in <module> session = InstaPy(username=insta_username, File "/Users/*****/Library/Python/3.9/lib/python/site-packages/instapy/instapy.py", line 325, in __init__ self.browser, err_msg = set_selenium_local_session( File "/Users/*****/Library/Python/3.9/lib/python/site-packages/instapy/browser.py", line 123, in set_selenium_local_session browser = webdriver.Firefox( File "/Users/*****n/Library/Python/3.9/lib/python/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__ self.service.start() File "/Users/*****/Library/Python/3.9/lib/python/site-packages/selenium/webdriver/common/service.py", line 104, in start raise WebDriverException("Can not connect to the Service %s" % self.path) selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service /usr/local/bin/geckodriver [Opération terminée]
报错根因
该报错由Selenium无法正常启动Firefox对应的geckodriver驱动触发,常见触发原因有三类:驱动与Firefox浏览器版本不匹配、macOS系统安全规则拦截驱动运行、驱动路径未被正确识别。
修复方案
- 第一步:匹配驱动与浏览器版本
确认本地安装的Firefox浏览器正式版本号,下载对应版本的geckodriver文件,替换/usr/local/bin/路径下的旧驱动文件,执行以下命令给驱动加执行权限:chmod +x /usr/local/bin/geckodriver - 第二步:放行系统安全拦截
macOS默认会阻止未经过签名的第三方程序运行,先在终端手动执行一次驱动验证命令:
弹出安全提示后,打开「系统设置-隐私与安全性」,在安全性板块选择允许geckodriver运行即可。/usr/local/bin/geckodriver --version - 第三步:显式指定驱动路径(前两步完成后仍报错时使用)
初始化InstaPy实例时额外传入geckodriver的绝对路径参数即可:
若仍提示路径找不到,可在脚本开头新增PATH路径配置:session = InstaPy( username=insta_username, password=insta_password, geckodriver_path='/usr/local/bin/geckodriver' )import os os.environ["PATH"] += ":/usr/local/bin"
内容的提问来源于stack exchange,提问作者Meric Fournier
相关产品推荐
相关产品推荐

