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

使用urllib发送GET请求遇问题:误发POST且提示无get方法

正确使用urllib发送带Referer头的GET请求

问题原因

  1. 你第一段代码发送POST请求,是因为request.Request只要传入了data参数(哪怕是空字典{}),就会默认使用POST方法。
  2. 第二段代码报错是因为request.get()是requests库的方法,而非Python标准库urllib.request的方法,所以找不到该方法。

正确写法

方法一:移除data参数(推荐)

直接不传data,Request对象默认使用GET方法,同时通过headers参数设置Referer:

from urllib import request
req = request.Request(url, headers={'Referer': 'my_original_header'})
res = request.urlopen(req)

方法二:显式指定GET方法

如果一定要保留data参数(GET请求通常不需要传data),可以显式设置method='GET':

from urllib import request
req = request.Request(url, data={}, method='GET', headers={'Referer': 'my_original_header'})
res = request.urlopen(req)

补充:如果想用类似.get()的简洁写法

如果习惯用get()这种调用方式,需要安装并使用第三方库requests:

import requests
res = requests.get(url, headers={'Referer': 'my_original_header'})

注意这不是标准库urllib的用法,需先通过pip install requests安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 15:12:22