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

FancyURLopener的version属性在requests库中的等价实现方式

等价实现方式:自定义User-Agent请求头

嗨,当然有对应的实现方式啦!你在FancyURLopener里修改version属性,本质上是自定义HTTP请求的User-Agent请求头——这在requests里实现起来反而更直观,主要有两种常用方式:

方式一:单次请求直接指定headers

如果你只是单次请求需要自定义标识,直接在requests.get()里传入headers参数即可:

import requests

url = 'https://www.google.com'
# 这里的User-Agent值对应你之前设置的version属性
custom_headers = {
    'User-Agent': 'Some fancy thing'
}
# 发起请求
response = requests.get(url, headers=custom_headers)
# 把响应内容保存到文件,对应原代码里的retrieve操作
with open('google.html', 'wb') as file:
    file.write(response.content)

方式二:通过Session统一设置(适合多请求场景)

如果需要发起多个请求都使用同一个自定义标识,可以创建Session对象,一次性设置好headers,后续所有通过该Session发起的请求都会自动带上这个标识:

import requests

# 创建Session实例
session = requests.Session()
# 统一更新User-Agent
session.headers.update({'User-Agent': 'Some fancy thing'})

url = 'https://www.google.com'
# 用Session发起请求
response = session.get(url)
# 保存文件
with open('google.html', 'wb') as file:
    file.write(response.content)

简单来说,FancyURLopener的version属性最终就是作为User-Agent头传递给服务器的,所以在requests里只要自定义这个请求头,就完全等价于你之前的操作啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:08:26