无GUI环境下使用Selenium无头浏览器爬取遇Chrome安装报错求助
WSL Ubuntu 22.04无GUI环境下Selenium无需完整安装Chrome爬取方案
问题原因
你遇到的报错是因为默认配置下,Selenium需要找到Chrome浏览器的二进制文件才能启动,即使是无头模式也不例外——官方文档提到的"无需安装浏览器"实际指的是可以借助Chrome Headless Shell(轻量版无头二进制文件)而非完整Chrome浏览器来运行。
方案一:使用Chrome Headless Shell(完全无需完整Chrome)
这是最贴合你需求的方案,仅需下载轻量的Headless Shell二进制文件:
- 先确认本地ChromeDriver版本:
chromedriver --version - 下载对应版本的Chrome Headless Shell(示例为114.0.5735.90版本,需替换为你的ChromeDriver对应版本):
wget https://storage.googleapis.com/chrome-for-testing-public/114.0.5735.90/linux64/chrome-headless-shell-linux64.zip unzip chrome-headless-shell-linux64.zip sudo mv chrome-headless-shell-linux64/chrome-headless-shell /usr/local/bin/ - 修改项目中Selenium初始化代码,指定Headless Shell路径:
from selenium import webdriver from selenium.webdriver.chrome.options import Options options = Options() options.add_argument("--headless=new") # 启用新版无头模式 options.binary_location = "/usr/local/bin/chrome-headless-shell" # 额外添加WSL环境必需参数 options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") driver = webdriver.Chrome(options=options)
方案二:安装轻量Chromium替代完整Chrome
如果不想手动管理Headless Shell,可安装体积更小的Chromium(开源版Chrome),配合Selenium自动驱动管理:
- 安装Chromium:
sudo apt update && sudo apt install chromium-browser -y - 安装Selenium驱动管理工具:
pip install webdriver-manager - 更新代码中的驱动初始化逻辑:
from selenium import webdriver from selenium.webdriver.chrome.options import Options from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.service import Service options = Options() options.add_argument("--headless=new") options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") # 指定Chromium二进制路径(部分环境需手动指定) options.binary_location = "/usr/bin/chromium-browser" driver = webdriver.Chrome( service=Service(ChromeDriverManager().install()), options=options )
额外提示
- Facebook Marketplace有严格的反爬机制,建议添加
--user-agent参数模拟真实浏览器,或使用undetected-chromedriver库绕过检测 - WSL环境内存有限,运行时避免同时开启其他高内存进程,防止浏览器崩溃
内容的提问来源于stack exchange,提问作者Lokman
相关产品推荐
相关产品推荐

