You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派Zero使用Selenium网页爬取报错:状态码为-4

树莓派Zero无头模式运行Selenium Chromedriver报错状态码-4的解决办法

问题场景

作为网页爬取/编程/树莓派领域新手,尝试在无头模式的树莓派Zero上执行网页爬取,运行以下代码:

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')

driver = webdriver.Chrome(executable_path='/usr/bin/chromedriver', options=chrome_options)  # Update with the actual path


driver.get("https://github.com/kaliiiiiiiiii/Selenium-Profiles")
print(driver.title)
driver.quit()

执行命令python webscrapingexample.py时触发错误:

$ python webscrapingexample.py
Traceback (most recent call last):
  File "/home/fanoeline/webscrapingexample.py", line 6, in <module>
    driver = webdriver.Chrome(executable_path='/usr/bin/chromedriver', options=chrome_options)  # Update with the actual path
  File "/home/fanoeline/.local/lib/python3.9/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__
    self.service.start()
  File "/home/fanoeline/.local/lib/python3.9/site-packages/selenium/webdriver/common/service.py", line 98, in start
    self.assert_process_still_running()
  File "/home/fanoeline/.local/lib/python3.9/site-packages/selenium/webdriver/common/service.py", line 109, in assert_process_still_running
    raise WebDriverException(
selenium.common.exceptions.WebDriverException: Message: Service /usr/bin/chromedriver unexpectedly exited. Status code was: -4

已尝试重装Selenium、Chromium,推测状态码-4与文件无法打开有关,寻求解决办法。

排查与解决步骤

1. 修复ARM架构兼容性问题

树莓派Zero为ARMv6架构,普通版本Chromium/Chromedriver可能不兼容,需安装适配版本:

  • 卸载现有组件:
    sudo apt remove --purge chromium-browser chromium-chromedriver
    sudo apt autoremove
    
  • 安装ARMv6适配版本:
    sudo apt install chromium-browser:armhf chromium-chromedriver:armhf
    
  • 验证版本匹配:执行chromium-browser --version和chromedriver --version,确保主版本号完全一致。

2. 补充无头模式依赖

Chromium无头模式需要额外系统依赖,树莓派Zero可能缺失:

sudo apt install libnss3 libgconf-2-4 libasound2 libxtst6 libxss1 libgtk-3-0

3. 优化Chrome启动参数

针对树莓派Zero性能限制,添加适配参数避免崩溃:
修改代码中的ChromeOptions配置:

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')  # 禁用沙箱,适配树莓派环境
chrome_options.add_argument('--disable-dev-shm-usage')  # 解决/dev/shm空间不足问题
chrome_options.add_argument('--disable-gpu')  # 树莓派Zero无独立GPU,强制禁用
chrome_options.add_argument('--single-process')  # 单进程模式,降低资源占用

4. 检查Chromedriver权限

确保驱动文件拥有可执行权限:

sudo chmod +x /usr/bin/chromedriver

5. 替代方案:轻量浏览器

若Chromium仍无法正常运行,可切换至资源占用更低的Firefox ESR:

  • 安装组件:
    sudo apt install firefox-esr
    wget https://github.com/mozilla/geckodriver/releases/download/v0.33.0/geckodriver-v0.33.0-armv7l.tar.gz
    tar -xzf geckodriver-v0.33.0-armv7l.tar.gz
    sudo mv geckodriver /usr/local/bin/
    sudo chmod +x /usr/local/bin/geckodriver
    
  • 对应Python代码示例:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options

firefox_options = Options()
firefox_options.add_argument('--headless')
driver = webdriver.Firefox(options=firefox_options)
driver.get("https://github.com/kaliiiiiiiiii/Selenium-Profiles")
print(driver.title)
driver.quit()

内容的提问来源于stack exchange,提问作者Sparkie123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 19:57:22