requests - 会话保持

使用场景:后台启用会话,登录之后,只要保持会话,就可以持续访问接口。

  1. 需要注意会话保持,登录之后不要断线;
  2. 为了防止 CSRF 攻击,登录参数除了账号密码,有时候还会有个 token,这个要通过爬虫抓取;
import requests

# 目标网站的登录URL
login_url = 'http://example.com/login'

# 创建一个Session对象,以便保持会话状态
session = requests.Session()

# 获取登录页面,通常这一步用于获取CSRF tokens等
response = session.get(login_url)

# 解析登录表单需要的数据,例如CSRF tokens
# 这部分需要根据实际登录页面的HTML结构来解析
# 假设CSRF token 在一个input标签的value属性中
# 以下只是一个示例,具体情况需要根据实际页面结构解析
csrf_token = '从登录页面获取的CSRF token'

# 登录需要的数据
login_data = {
    'username': 'your_username',
    'password': 'your_password',
    'csrfmiddlewaretoken': csrf_token  # 如果需要的话
}

# 发送POST请求进行登录
response = session.post(login_url, data=login_data)

# 登录成功后,session对象会自动处理cookies,之后的请求都会保持登录状态
# 例如获取登录后的内容
homepage = session.get('http://example.com/home')

print(response.json())

print(homepage.text)  # 打印登录后的页面内容

posted on 2024-12-06 09:30  疯狂的妞妞  阅读(6)  评论(0编辑  收藏  举报

导航