公司锁定Mac下如何绕过限制执行chromedriver运行Selenium爬虫
可行解决方法
方法1:移除驱动的隔离属性
Mac会给所有从网络下载的可执行文件自动添加隔离扩展属性,这是触发开发者验证弹窗的核心原因,执行以下命令移除该属性即可:
# 替换为你的chromedriver实际存储路径 xattr -d com.apple.quarantine /path/to/your/chromedriver
如果是用工具自动下载的驱动(比如webdriver-manager),可以批量处理缓存目录下的所有驱动:
find ~/.wdm -name "chromedriver" -exec xattr -d com.apple.quarantine {} \;
方法2:改用undetected-chromedriver
这个第三方封装的驱动不需要手动下载配置,默认绕过Mac的签名验证机制,同时还能规避多数网站的反爬检测,使用方式非常简单:
- 安装依赖:
pip install undetected-chromedriver - 替换原有Selenium启动代码即可:
import undetected_chromedriver as uc # 无需手动指定驱动路径,会自动匹配Chrome版本 driver = uc.Chrome() driver.get("你要爬取的目标地址")
方法3:用Docker容器运行(完全绕开本机限制)
如果本机MDM策略限制了修改安全属性,可以直接用Selenium官方的预构建容器运行Chrome环境,完全不需要修改本机任何权限配置:
- 启动Chrome容器:
docker run -d -p 4444:4444 selenium/standalone-chrome - 代码中改用Remote Webdriver连接容器内的服务即可:
from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities driver = webdriver.Remote( command_executor='http://localhost:4444/wd/hub', desired_capabilities=DesiredCapabilities.CHROME ) driver.get("你要爬取的目标地址")
方法4:升级到Selenium 4.6+版本
Selenium 4.6及以上版本内置了Selenium Manager组件,会自动匹配、下载并配置对应版本的浏览器驱动,多数情况下可以自动处理权限验证问题,不需要你手动管理chromedriver文件。
内容的提问来源于stack exchange,提问作者AlpaBeta
相关产品推荐
相关产品推荐

