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

使用urllib的urlopen请求网页时出现RemoteDisconnected错误如何解决

问题原因

你遇到的RemoteDisconnected报错是剑桥词典网站的反爬虫策略触发导致的:urllib默认发送的请求头中User-Agent字段值为Python-urllib/xx.x(xx.x为你的Python版本号),服务器识别到这是非浏览器的爬虫请求后,会直接主动断开连接,不会返回任何响应内容。

解决方案

方案1:使用原生urllib自定义请求头

通过构造Request对象手动添加浏览器的User-Agent字段,伪装成普通浏览器访问:

from urllib.request import urlopen, Request

url = 'https://dictionary.cambridge.org/dictionary/english/water'
# 可替换为自己浏览器的真实User-Agent,通过浏览器开发者工具网络面板即可查看
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
}
req = Request(url, headers=headers)
page = urlopen(req)
# 读取页面内容示例
html_content = page.read().decode('utf-8')

方案2:使用requests库(更简洁推荐)

requests库对HTTP请求的封装更易用,是爬虫场景的常用选择:

  1. 先安装依赖:
pip install requests
  1. 编写请求代码:
import requests

url = 'https://dictionary.cambridge.org/dictionary/english/water'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
}
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'
html_content = response.text
注意事项
  • 请控制请求频率,避免短时间内大量请求占用网站服务器资源
  • 剑桥词典的内容受版权保护,请勿批量爬取用于商业用途

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:27:01