Python中如何在服务器端运行Chrome headless模式

用 python+selenium+headless+chromedriver
Q1.环境:
服务器端找不到好的教程?坑很多,chrome 和 webdriver 都装了但是运行不了,说是 DevToolsActivePort file doesn’t exist
Q2. 我在本地是可以实现模拟点击的,服务器端确定也可以吗?从有头迁移到无头(headless),代码需要啥变动吗
谢谢大家,搞一天了。。
Python中如何在服务器端运行Chrome headless模式

2 回复

要在服务器端运行Chrome headless模式,用seleniumwebdriver-manager最省事。先装包:

pip install selenium webdriver-manager

然后上代码:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager

# 设置headless选项
chrome_options = Options()
chrome_options.add_argument("--headless=new")  # 新版Chrome推荐用这个
chrome_options.add_argument("--no-sandbox")    # 服务器环境常需要
chrome_options.add_argument("--disable-dev-shm-usage")  # 解决内存问题

# 自动管理driver
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=chrome_options)

# 使用示例
try:
    driver.get("https://www.example.com")
    print("页面标题:", driver.title)
    # 截图保存
    driver.save_screenshot("screenshot.png")
finally:
    driver.quit()

关键点:

  • --headless=new 是新版Chrome(109+)的推荐参数
  • webdriver-manager 自动处理driver版本,不用手动下载
  • 服务器环境记得加--no-sandbox--disable-dev-shm-usage

如果服务器没Chrome,得先装一下:

# Ubuntu/Debian
apt-get update && apt-get install -y chromium-browser

# CentOS/RHEL
yum install -y chromium

selenium-wire还能顺便抓请求,挺方便的。

总结:用selenium配webdriver-manager最稳。


服务端是普通用户启动的 chrome ?

回到顶部