一、requests库获取cookie
在使用requests库发送HTTP请求时,我们可以通过session对象来自动管理cookie,而不需要我们手动设置或者存储cookie值。
import requests
session = requests.session()
# 发送HTTP请求并使用session对象自动管理cookie
response = session.get('http://www.example.com')
在上述代码中,我们使用session对象来发送HTTP请求,这样所有后续的请求都会自动携带cookie,而不需要我们手动设置cookie。
二、requests库设置cookie
在某些情况下,我们需要手动设置cookie来发送HTTP请求。此时,我们可以使用requests库的cookies参数来设置cookie值。
import requests
cookies = {'session_id': '123456'}
# 发送HTTP请求并设置cookie
response = requests.get('http://www.example.com', cookies=cookies)
在上述代码中,我们设置了session_id的值为123456,并使用cookies参数来发送HTTP请求并设置cookie。
三、requests库保存和读取cookie
requests库提供了两个方法来保存和读取cookie:session.cookies.save()和session.cookies.load()。
我们可以先使用session对象自动管理cookie,然后通过cookies.save()方法来保存cookie到本地。
import requests
session = requests.session()
# 发送HTTP请求并使用session对象自动管理cookie
response = session.get('http://www.example.com')
# 保存cookie到本地
session.cookies.save()
在下次发送HTTP请求时,我们可以使用load()方法来读取从本地保存的cookie。
import requests
session = requests.session()
# 读取本地保存的cookie
session.cookies.load()
# 发送HTTP请求并使用session对象自动管理cookie
response = session.get('http://www.example.com')
四、requests库清除cookie
requests库提供了clear()方法来清除cookie。
import requests
session = requests.session()
# 清除cookie
session.cookies.clear()
# 发送HTTP请求并使用session对象自动管理cookie
response = session.get('http://www.example.com')
五、requests库设置全局cookie
在某些情况下,我们希望所有的HTTP请求都带有同一个cookie。此时,我们可以使用requests库的hooks参数来设置全局cookie。
import requests
cookies = {'session_id': '123456'}
# 设置全局cookie
def add_cookie(request):
request.cookies.update(cookies)
# 发送HTTP请求并设置全局cookie
response = requests.get('http://www.example.com', hooks={'request': add_cookie})
在上述代码中,我们使用hooks参数来设置全局cookie。我们定义了add_cookie函数来更新HTTP请求的cookie值。