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

在PythonAnywhere运行Selenium脚本报错求助:启动失败及连接问题

问题解决:PythonAnywhere上Selenium Chrome爬取报错处理

第一个报错:Chrome启动失败(DevToolsActivePort文件不存在)

你的代码存在关键问题:先无参数初始化了一次webdriver.Chrome(),之后才配置选项重新初始化,这会导致第一次启动的Chrome进程异常,进而引发后续启动报错。

修正方法:删除第一行无参数的driver = webdriver.Chrome(),确保仅在配置完所有选项后初始化一次WebDriver。同时注意Selenium 4.x版本推荐使用options参数替代旧的chrome_options参数,兼容性更好。

修正后的核心代码:

import os
from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
cwd = os.getcwd()
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument('--disable-dev-shm-usage')

prefs = {'download.default_directory' : cwd}
chrome_options.add_experimental_option('prefs', prefs)
# 仅初始化一次driver
driver = webdriver.Chrome(options=chrome_options)

第二个报错:net::ERR_TUNNEL_CONNECTION_FAILED

这个报错确实和PythonAnywhere免费用户的网络限制直接相关:

  • 免费用户的出站请求必须通过平台代理服务器,且仅能访问白名单内的站点(以常见公共服务、主流网站为主)。
  • 当尝试访问不在白名单内的站点时,就会触发隧道连接失败的错误。

另外,PythonAnywhere上预装的Chromium版本(你当前使用的是90.0.4430.212)较为老旧,可能和部分现代网站存在兼容性问题,但核心原因仍是免费版的网络访问限制。

后续建议

  • 若目标站点不在免费版白名单中,可考虑升级到付费版,付费用户无出站访问限制。
  • 可通过PythonAnywhere控制台用curl命令测试站点连通性,确认是否在白名单内,例如:curl https://你的目标站点.com,返回正常则站点在白名单内,否则即为限制导致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 09:25:23