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

