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

PY4E课程Socket GET脚本Windows下返回乱码及拦截页面问题求助

问题诊断与解决方案

核心原因

这和编码无关,是Avira杀毒软件的网络拦截功能在Windows环境下阻断了脚本对data.pr4e.org的HTTP请求,返回了Avira自身的拦截提示页面(而非目标文件),所以你看到乱码(拦截页面的内容/编码和预期不符)。WSL是独立于Windows的子系统,Avira默认不会拦截WSL内的网络请求,因此能正常获取文件。

解决步骤

1. 临时关闭Avira网络防护(用于验证)

打开Avira杀毒软件,找到「实时保护」或「网络防护」模块,临时关闭该功能,重新运行Python脚本,确认是否能正常获取romeo.txt内容。如果正常,即可确认是Avira拦截导致的问题。

2. 添加Avira白名单(永久解决)

在Avira的「设置」→「排除项」中,添加以下内容:

  • 你的Python解释器路径(比如C:\Python39\python.exe,或VSCode中使用的Python路径)
  • 脚本所在的文件夹路径
  • 目标域名data.pr4e.org(部分Avira版本支持直接添加域名白名单)

3. 替代方案:改用标准HTTP客户端库

手动构建Socket请求容易被杀毒软件误判,改用更规范的HTTP库兼容性更好:

使用urllib(Python自带,无需额外安装)

import urllib.request

with urllib.request.urlopen('http://data.pr4e.org/romeo.txt') as response:
    content = response.read().decode('utf-8')
    print(content)

使用requests(需先安装:pip install requests)

import requests

resp = requests.get('http://data.pr4e.org/romeo.txt')
print(resp.text)

额外验证

确认Windows防火墙没有拦截Python的网络请求:打开「Windows Defender防火墙」→「允许应用通过防火墙」,检查Python是否在允许列表中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 11:20:59