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

能否在Django网站中展示运行中的Python Selenium会话?

实现Django网站展示Selenium实时会话的可行方案

方案1:VNC远程桌面+Django流媒体转发

如果使用带VNC的Selenium镜像(比如selenium/standalone-chrome-debug),可以通过VNC抓取浏览器画面,再转成HTTP流推送到Django页面:

  • 启动带VNC的Selenium节点,例如Docker命令:docker run -d -p 4444:4444 -p 5900:5900 selenium/standalone-chrome-debug
  • Django后端用vncdotool类库抓取VNC画面,转成MJPEG格式的流
  • 编写Django视图返回MJPEG流响应,前端用<img>标签指向该视图URL,即可实时播放画面

方案2:定时截图+前端刷新(轻量版)

如果对实时性要求不高,这个方案更简单:

  • 在Selenium会话中定时调用driver.save_screenshot(),将截图保存到Django媒体目录
  • 编写Django视图返回最新截图文件
  • 前端用JavaScript定时(比如每秒1次)刷新<img>标签的src属性,拉取最新截图
  • 注意:要做好截图文件的覆盖或定时清理,避免磁盘占用过高

方案3:Headless Chrome DevTools协议(低延迟版)

Headless模式下可通过DevTools协议获取实时画面:

  • 启动Chrome时开启调试端口:options.add_argument("--remote-debugging-port=9222")
  • Django后端用websocket-client连接DevTools的WebSocket,监听页面截图事件
  • 通过WebSocket将截图数据推送给前端,实现低延迟的实时渲染

关键注意事项

  • 资源控制:每个Selenium会话会占用浏览器进程,需限制同时运行的会话数量,防止服务器资源耗尽
  • 权限验证:在Django视图中添加登录校验,确保只有授权用户能查看会话
  • 会话隔离:不同用户的Selenium会话需完全隔离,避免画面串流

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 20:52:36