c语言编程笔录

首页 >   > 笔记大全

笔记大全

requestssession获取Cookies的过程是什么

更新时间:2023-12-29

第一段:什么是requests.session()获取Cookies

requests.session()是Python requests库中的一个类,可以为同一个Session实例发出的所有请求之间保持cookie,它模拟了一个与服务器之间的会话,从而更好地处理各种网络协议。而获取Cookies,就是在浏览器向Web服务器发送请求时,服务器返回的可存储在客户端浏览器中用于记住特定用户会话信息的数据。

import requests

session = requests.session()
response = session.get('https://www.baidu.com')
print(session.cookies)

第二段:requests.session()获取Cookies的主要过程

requests.session()获取Cookies的主要过程包括:创建session对象->发送网络请求->获取cookies->保存cookies

创建session对象:使用requests库的session()方法,创建一个session对象,这个对象包含了所有HTTP请求所需要的方法。
import requests

session = requests.session()
发送网络请求:用session对象发送网络请求,并得到响应对象
import requests

session = requests.session()
response = session.get('https://www.baidu.com')
获取cookies:从响应对象中获取cookies信息,requests库自动将服务器返回的所有cookies存储在session.cookies变量中,其中包含了所有的cookies。
import requests

session = requests.session()
response = session.get('https://www.baidu.com')
print(session.cookies)
保存cookies:通过使用keep-alive,在同一session中保持打开连接,在每次发送HTTP请求时发送cookies,从而避免浪费时间和带宽重新发送cookies信息。
import requests

session = requests.session()
response = session.get('https://www.baidu.com')
print(session.cookies)

response = session.get('https://www.baidu.com/s')
print(session.cookies)

第三段:requests.session()获取Cookies的应用场景

requests.session()获取Cookies的应用场景非常广泛,特别是在需要用户登录验证等情况下。在请求中包含了所有的cookies,可以避免这个过程,简单来说就是在采集过程中可以用于绕过验证码或者其他的限制。比如,模拟登录,请求网页,保存登录状态等。

import requests

loginUrl = 'https://www.xxx.com/login'
session = requests.session()

# 登录页
loginPage = session.get(loginUrl)
print(session.cookies)

# 请求参数
params = {
    'username': 'xxx',
    'password': 'xxx'
}
response = session.post(loginUrl, data=params)
print(session.cookies)

第四段:requests.session()获取Cookies的注意事项

当使用requests.session()获取Cookies时,有一些注意事项需要遵守。首先,保持同一个session对象,不要在不同的session对象中保存同一个网站的cookies,这会导致不同的请求之间产生矛盾,从而导致程序无法正常工作。其次,当cookies过期或失效时,会话会自动终止,需要重新登录。最后,requests库为了避免CSRF攻击的发生,在请求时会自动生成XSRF-TOKEN,但如果cookies没有被正确设置,就会导致无法获取到XSRF-TOKEN。

总结:requests.session()获取Cookies是一种十分常用的获取浏览器中Cookies信息的方式,通过一系列发送网络请求、获取和保存Cookies等过程,可以获取Cookies并应用在爬取数据的过程中。在实际应用过程中,需要注意session对象的唯一性,及时更新或重新登录失效的cookies信息。