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

在PythonAnywhere部署Selenium+Flask应用遇版本匹配问题及可行性咨询

Flask+Selenium部署PythonAnywhere问题解决及可行性说明

版本不匹配问题原因

核心问题是ChromeDriver与浏览器版本不兼容:

  • 初始错误:本地Chrome版本为115,但PythonAnywhere环境中存在对应90版本的旧ChromeDriver,导致版本不匹配。
  • 使用webdriver-manager后:工具默认安装了对应114版本的ChromeDriver,但PythonAnywhere系统默认的Chromium是90.0.4430.212,再次出现版本不兼容。

PythonAnywhere服务器无法直接升级系统级浏览器,必须手动指定浏览器路径和对应版本的ChromeDriver。

解决步骤

1. 配置ChromeOptions(无头模式+系统浏览器路径)

服务器无图形界面,必须启用无头模式,同时指定PythonAnywhere默认的Chromium路径:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

options = webdriver.ChromeOptions()
# 无头模式(服务器环境必需)
options.add_argument('--headless')
# 绕过沙箱限制
options.add_argument('--no-sandbox')
# 解决/dev/shm内存不足问题
options.add_argument('--disable-dev-shm-usage')
# 指定PythonAnywhere系统默认Chromium路径
options.binary_location = '/usr/bin/chromium'

2. 指定匹配版本的ChromeDriver

PythonAnywhere默认Chromium版本为90.0.4430.212,需安装对应版本的ChromeDriver:

# 初始化WebDriver,指定对应版本的ChromeDriver
driver = webdriver.Chrome(
    service=ChromeService(ChromeDriverManager(version="90.0.4430.212").install()),
    options=options
)

3. 额外注意事项

  • 每次使用完Driver后,务必调用driver.quit()释放资源,避免内存泄漏。
  • 对Selenium操作添加异常捕获,防止单个请求失败导致整个Flask应用崩溃。

Flask通过POST运行Selenium的可行性

完全可行,但需注意以下限制:

  • 资源限制:PythonAnywhere的免费/基础套餐有CPU、内存和执行时间限制,Selenium操作耗时较长时,可能触发超时或资源占用过高警告。
  • 并发问题:多个POST请求同时触发Selenium操作可能导致服务器资源耗尽,建议添加请求排队或限流机制。
  • 稳定性:服务器环境的浏览器版本固定,需长期维护ChromeDriver与浏览器版本的匹配,避免因环境更新导致兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 10:25:25