首页 > 其他分享 >requests模块处理cookie

requests模块处理cookie

时间:2024-06-18 23:28:22浏览次数:23  
标签:请求 headers session cookie 模块 使用 requests

requess模块处理cookie相关的请求

学习目标
    1. 掌握requests处理cookie的三种方法

1 爬虫中使用cookie

为了能够通过爬虫获取到登录后的页面,或者是解决通过cookie的反扒,需要使用request来处理cookie相关的请求

1.1 爬虫中使用cookie的利弊
  1. 带上cookie的好处

    • 能够访问登录后的页面
    • 能够实现部分反反爬
  2. 带上cookie的坏处

    • 一套cookie往往对应的是一个用户的信息,请求太频繁有更大的可能性被对方识别为爬虫
    • 那么上面的问题如何解决 ?使用多个账号
1.2 requests处理cookie的方法

使用requests处理cookie有三种方法:

  1. cookie字符串放在headers中
  2. 把cookie字典放传给请求方法的cookies参数接收
  3. 使用requests提供的session模块

2 cookie添加在heades中

2.1 headers中cookie的位置
  • headers中的cookie:
    • 使用分号(;)隔开
    • 分号两边的类似a=b形式的表示一条cookie
    • a=b中,a表示键(name),b表示值(value)
    • 在headers中仅仅使用了cookie的name和value
2.2 cookie的具体组成的字段

由于headers中对cookie仅仅使用它的name和value,所以在代码中我们仅仅需要cookie的name和value即可

2.3 在headers中使用cookie

复制浏览器中的cookie到代码中使用

headers = {
"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
"Cookie":" Pycharm-26c2d973=dbb9b300-2483-478f-9f5a-16ca4580177e; Hm_lvt_98b9d8c2fd6608d564bf2ac2ae642948=1512607763; Pycharm-26c2d974=f645329f-338e-486c-82c2-29e2a0205c74; _xsrf=2|d1a3d8ea|c5b07851cbce048bd5453846445de19d|1522379036"}

requests.get(url,headers=headers)
注意:

cookie有过期时间 ,所以直接复制浏览器中的cookie可能意味着下一程序继续运行的时候需要替换代码中的cookie,对应的我们也可以通过一个程序专门来获取cookie供其他程序使用;当然也有很多网站的cookie过期时间很长,这种情况下,直接复制cookie来使用更加简单

3 使用cookies参数接收字典形式的cookie

  • cookies的形式:字典
cookies = {"cookie的name":"cookie的value"}
  • 使用方法:
requests.get(url,headers=headers,cookies=cookie_dict}

4 使用requests.session处理cookie

前面使用手动的方式使用cookie,那么有没有更好的方法在requets中处理cookie呢?

requests 提供了一个叫做session类,来实现客户端和服务端的会话保持

会话保持有两个内涵:

  • 保存cookie,下一次请求会带上前一次的cookie
  • 实现和服务端的长连接,加快请求速度
4.1 使用方法
session = requests.session()
response = session.get(url,headers)

session实例在请求了一个网站后,对方服务器设置在本地的cookie会保存在session中,下一次再使用session请求对方服务器的时候,会带上前一次的cookie

4.2 动手练习:

动手尝试使用session来登录人人网:
http://www.renren.com/PLogin.do (先不考虑这个url地址从何而来),请求体的格式:{"email":"username", "password":"password"}

思路分析
  1. 准备url地址和请求参数
  2. 构造session发送post请求
  3. 使用session请求个人主页,观察是否请求成功

5 小结

  1. cookie字符串可以放在headers字典中,键为Cookie,值为cookie字符串
  2. 可以把cookie字符串转化为字典,使用请求方法的cookies参数接收
  3. 使用requests提供的session模块,能够自动实现cookie的处理,包括请求的时候携带cookie,获取响应的时候保存cookie

标签:请求,headers,session,cookie,模块,使用,requests
From: https://blog.csdn.net/weixin_51390582/article/details/136558233

相关文章

  • logging模块
    在Python中,logging模块是一个强大的日志记录工具,它允许你以多种方式记录你的程序在运行时的活动。你给出的代码片段logging.basicConfig(...)是用来配置logging模块的基本设置的。logging.basicConfig(level=logging.INFO,format='%(asctime)s-%(name)s-%(levelname)s-%......
  • 【x264】滤波模块的简单分析
    【x264】滤波模块的简单分析1.滤波模块概述1.1自适应边界1.2自适应样点级滤波器1.3滤波过程2.函数入口(fdec_filter_row)2.1去块滤波(x264_frame_deblock_row)2.1.1强滤波函数(deblock_edge_intra)2.1.2普通滤波函数(deblock_edge)3.小结参数分析:【x264】x264编码......
  • BOSHIDA DC/AC电源模块:实现电力系统的多样化应用
    BOSHIDADC/AC电源模块:实现电力系统的多样化应用DC/AC电源模块是一种用于实现电力系统的多样化应用的设备,它能够将直流电源转换为交流电源。在现代社会中,电力系统的应用非常广泛,从家庭和商业建筑到工业设备和交通运输,都需要稳定可靠的电力供应。DC/AC电源模块为这些需求提供了强......
  • (杭州中科微)全星座定位导航模块GM36的应用推荐及性能指标解析
    1、首先我们先了解下什么是GNSS(全球W星导航系统):它是一种基于W星信号的定位技术,通过使用一组分布在地球轨道上的W星,为用户提供全球范围内的定位、导航和时间服务。目前在用的GNSS分为以下几种:● 中国的北斗二号/北斗三号● 俄罗斯的GLONASS● 欧盟的GALILEO● 日本......
  • 八路DI八路DO开关量输入输出 远程IO模块 Modbus TCP数据采集模块 YL90
    特点:●八路开关量输入,八路开关量输出● DI状态变化自动发送状态数据,可以捕获脉冲● 采用Socket自由协议编程简单、轻松应用● 开关量毫秒级响应速度适应多种场合● 内置网页功能,可以通过网页查询与控制● 同时也支持ModbusTCP通讯协议● 宽电源供电范围:8~32......
  • OceanBase中OCP平台显示的TOPSQL模块是如何查询出来的
    说明:oba脚本通过变量的方式直接实现以下三个查询,如手工查询需要分别执行SQL获取对应的变量信息1.server_id检查方式selecta.idserver_id,a.svr_ip,a.zone,b.primary_zone,b.tenant_namefrom__all_servera,__all_tenantbwheretenant_id=1001orderby3;2.计算总cpu--这......
  • VSCode 中 Vue3:找不到模块 “./XXX.vue” 或其相应的类型声明
    问题!代码可以正常运行,但VSCode报错:找不到模块“./App.vue”或其相应的类型声明别再去愚昧的添加d.ts啦!只需在VSCode安装TypeScriptVuePlugin(Volar)拓展享受完全体的Vue导入!......
  • Cookie&Seesion
    文章目录1.会话跟踪技术的概述2.Cookie2.1Cookie的基本使用2.2Cookie的原理分析2.3Cookie的使用细节2.3.1Cookie的存活时间2.3.2Cookie存储中文3.Session3.1Session的基本使用3.2Session的原理分析3.3Session的使用细节3.3.1Session钝化与活化3.3.2Sessio......
  • BOSHIDA DC/AC电源模块:提升光伏发电系统的能源利用率
    BOSHIDADC/AC电源模块:提升光伏发电系统的能源利用率随着环境保护意识的提高和能源需求的增加,光伏发电系统作为一种清洁能源的代表,受到了越来越多的关注。然而,光伏发电系统在实际应用中还存在一些问题,如发电效率低、能源利用率不高等。为了解决这些问题,DC/AC电源模块应运而生。......
  • 如何在Sass中使用CSS模块?
    CSS模块是CSS的一个特性,它允许你将CSS样式封装在局部作用域中,从而避免样式冲突。Sass本身并不直接支持CSS模块,但是可以通过一些方法来实现类似的效果。以下是如何在Sass中使用CSS模块的一些步骤和概念。1.理解CSS模块CSS模块是一种封装CSS的方法,它使得样式只作用于特定的......