📜  urllib.request 标头 - Python (1)

📅  最后修改于: 2023-12-03 14:48:14.472000             🧑  作者: Mango

Python的urllib.request头部介绍

Python中的 urllib.request 模块提供了从URL读取数据的基本功能。当向服务器发送请求时,最常见的用法是在请求中包含头文件信息。头文件包含有关请求的元数据,例如请求的来源,接收的语言和请求的预期格式。在本文中,我们将介绍如何使用 Python 的 urllib.request 模块来添加头信息。

添加简单的头文件

使用 urllib.request.urlopen() 函数打开 URL 时,可以将相关头信息作为参数传递。下面是一个设置 User-Agent 头的例子:

import urllib.request

url = 'https://www.python.org/'
req = urllib.request.Request(
    url,
    data=None,
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
    }
)

response = urllib.request.urlopen(req)
print(response.read().decode('utf-8'))

在这个例子中,我们设置了 User-Agent 头,这样服务器就可以识别我们发送请求的浏览器类型和版本。这个头指定了我们正在使用的浏览器的名称和版本。

添加更多种类的头文件

在上述例子中,我们展示了如何设置最常用的头文件之一。下面是如何设置其他类型头文件的示例:

1.添加Referer头

客户端浏览器向服务器发送 HTTP 请求时,通常会在请求头中添加 Referer 参考标头,表示从哪个页面转来的请求。下面是如何使用 urllib.request 添加 Referer 参考标头的示例。

import urllib.request

url = 'https://www.python.org/'
req = urllib.request.Request(
    url,
    data=None,
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
        'Referer': 'https://www.google.com/'
    }
)

response = urllib.request.urlopen(req)
print(response.read().decode('utf-8'))

这个例子中,我们添加了 Referer 头文件,告诉服务器这个请求来自谷歌搜索页面。

2.添加Accept-Encoding头

Accept-Encoding 参考标头用于指定从客户端发出的 HTTP 请求所支持的压缩后的HTTP内容编码类型。如果服务器支持压缩,则响应将使用支持的编码类型压缩。下面是如何使用 urllib.request 添加 Accept-Encoding 参考标头的示例。

import urllib.request

url = 'https://www.python.org/'
req = urllib.request.Request(
    url,
    data=None,
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
        'Accept-Encoding': 'gzip, deflate'
    }
)

response = urllib.request.urlopen(req)
print(response.read().decode('utf-8'))

这个例子中,我们添加了 Accept-Encoding 参考标头,并将支持 gzip 和 deflate 编码。

总结

在本文中,我们介绍了如何使用 Python 的 urllib.request 模块添加头信息。添加头信息可以提供更多的元数据以帮助服务器了解请求的上下文和其他信息。头文件包含的信息越多,服务器就可以更准确地响应请求。