📅  最后修改于: 2023-12-03 14:47:04.575000             🧑  作者: Mango
response.history
– Python请求在Python中,可以使用requests
库来发起HTTP请求。当我们进行GET或POST等请求时,可能会碰到重定向的情况。这时候,我们就需要使用response.history
属性来查看重定向历史记录了。
response.history
属性response.history
是一个列表,记录了HTTP请求的所有历史记录。每一条记录都是一个Response
对象,该对象包含请求的详细信息,包括响应状态码,请求URL,请求方法等。
下面是一个简单的使用requests
库获取网页的例子:
import requests
response = requests.get('http://www.example.com')
如果请求发生重定向,我们可以使用response.history
属性来查看重定向历史记录:
import requests
response = requests.get('http://www.example.com', allow_redirects=False)
if response.status_code == 301:
print('This page has been redirected')
print('Redirect URL:', response.headers['Location'])
for resp in response.history:
print(resp.status_code, resp.url)
上述代码中,allow_redirects=False
参数告诉requests
库不要自动跟随重定向。如果响应状态码是301,说明服务器进行了重定向操作。此时,我们可以使用response.headers['Location']
属性来获取重定向的URL。接着,我们就可以使用response.history
属性来遍历请求的所有历史记录了。
response.history
的注意事项在使用response.history
属性时,需要注意以下几点:
response.history
列表就会记录一个元素,即初始请求的Response
对象。response.history
列表时,从第一个元素开始遍历,到最后一个元素结束。其中,最后一个元素就是最终的Response
对象。response.history
列表就会记录多个元素,每个元素都包含了一次重定向前的请求信息。response.history
属性只包含了没有被最终请求替换的历史记录。最终请求的Response
对象被记录在response
属性中。response.history
的应用场景response.history
属性通常用于以下场景:
response.history
属性是Python中请求HTTP时的一个很有用的属性,它提供了非常丰富的信息,包括请求的历史记录、URL等。如果您经常使用requests库进行HTTP请求,那么对response.history
属性的理解和掌握,将对您的工作和学习有很大的帮助。