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

如何修改urllib2的User Agent?解决Windows服务器403 Forbidden错误

解决urllib2在Windows上403 Forbidden的User-Agent修改方案

完全理解你的需求——不用替换成requests,咱们直接给urllib2加上Firefox的User-Agent就行!

出现403的原因确实大概率是默认的urllib2请求标识太“扎眼”了:它默认的User-Agent是类似Python-urllib/2.7这类字符串,很多服务器会直接把这种请求判定为爬虫,拒绝访问。换成Firefox的User-Agent就能模拟正常浏览器请求,绕过这个拦截。

具体修改步骤

  1. 定义Firefox的User-Agent字符串:你可以用Windows平台下Firefox的标准UA(下面这个是较新的版本,也可以根据实际需要调整):
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0
    
  2. 构造请求头字典:把User-Agent放进headers里
  3. 创建带请求头的Request对象:替代原来直接调用urlopen的方式

修改前后的代码对比

原来的代码(可能会触发403):

import urllib2
response = urllib2.urlopen("你的目标页面URL")

修改后的代码(添加Firefox UA):

import urllib2

# 设定Windows平台Firefox的User-Agent
firefox_user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0"

# 构造请求头
request_headers = {
    'User-Agent': firefox_user_agent
    # 如果需要,还可以添加其他请求头,比如Accept-Language: zh-CN,zh;q=0.8
}

# 创建带请求头的Request对象
request = urllib2.Request("你的目标页面URL", headers=request_headers)

# 发送请求并获取响应
response = urllib2.urlopen(request)

额外说明

如果你是用Python 3(注意Python3里已经没有urllib2,而是拆分到urllib.request模块),代码只需要稍微调整:

import urllib.request

firefox_user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0"
request_headers = {'User-Agent': firefox_user_agent}
request = urllib.request.Request("你的目标页面URL", headers=request_headers)
response = urllib.request.urlopen(request)

这样修改后,服务器会把你的请求识别为正常的Firefox浏览器访问,应该就能解决Windows上的403问题了。

内容的提问来源于stack exchange,提问作者J.doe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:20:45