在Digital Ocean Droplet上Selenium爬虫无法运行的问题求助
解决Digital Ocean Droplet上Selenium Chrome脚本运行问题
前置条件:确保Droplet内存充足
- 至少分配1GB内存,Chrome/Chromium运行需要足够内存支撑,内存不足会直接导致安装失败、运行时无响应或崩溃。
修正后的Selenium配置代码
from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By options = Options() # 新版无头模式,兼容性更优 options.add_argument('--headless=new') # 禁用沙箱,非root用户运行必备 options.add_argument('--no-sandbox') # 解决/dev/shm内存限制问题 options.add_argument('--disable-dev-shm-usage') # 指定窗口大小,替代无头模式下无效的start-maximized options.add_argument('--window-size=1920,1080') # 保持你的Chromium路径配置 options.binary_location = "/usr/bin/chromium-browser" driver = webdriver.Chrome(options=options) try: base_url = 'https://www.wikipedia.org/' driver.get(base_url) table_rows = driver.find_element(By.CSS_SELECTOR, ".footer-sidebar-text") text = table_rows.text print(text) finally: # 确保无论脚本是否出错都关闭浏览器 driver.quit()
关键参数说明
--headless=new:Chrome 112+引入的新版无头模式,行为更接近正常浏览器,可避免旧无头模式常见的DevToolsActivePort启动异常问题。--no-sandbox:Droplet默认使用非root用户运行,Chrome的沙箱机制会阻止程序启动,必须禁用。--disable-dev-shm-usage:Linux系统默认/dev/shm空间较小,Chrome依赖该目录存储临时文件,禁用后改用磁盘存储,避免内存不足导致崩溃。--window-size:无头模式下无实际窗口,指定固定尺寸可避免元素定位异常,替代无效的start-maximized参数。
原配置的问题点
start-maximized在无头模式下不生效,反而可能干扰启动流程。- 不必要的
--user-data-dir如果目录权限不正确,会导致Chrome无法初始化用户数据目录,引发启动失败。 - 无调试需求时添加
--remote-debugging-port可能引发端口冲突或启动异常。
内容的提问来源于stack exchange,提问作者hemoglobin
相关产品推荐
相关产品推荐

