requests请求

2023-11-16

请求方式

requests.get() --发送get请求
通过params传递参数
requests.post()–发送post请求
通过json/data 传递参数

data:
数据报文–dict字典类型,默认情况下请求头为applilcation/x-www-form-urlencoded,表示以form表单的方式传参;
数据报文–str类型默认情况下请求头为:text/plain(如果是字典格式需要转化成json格式传参;
json:
数据报文 --不管是dict还是str类型,默认都是applilcation/json

requests.delete()–发送delete请求
requests.put()–发送put请求
requests.head()–发送head请求
requests.options()–发送options请求
requests.request()–统一请求

# 使用request进行post请求
response = requests,request('post',url,data,cookie)

requests.session()–通过session实现请求
session对象可以实现在对不同http请求时保持一些参数不变,即同一个session对象发送的请求均携带某一个指定的参数。最常用的便是将第一次请求得到的cookies,继续用于后续同一session对象的请求中。

s= requests.session()  # 创建session对象
# 设置一个auth属性
s.auth = ('user','demo')
# 添加请求头信息
s.headers.update({'x-test':'true'})
# 若请求没有设置auth参数则为默认设置的参数
response1 = s.request('get',url1)
# print(s.headers)
# {'User-Agent': 'python-requests/2.25.1', 
# 'Accept-Encoding': 'gzip, deflate',
# 'Accept': '*/*', 
# 'Connection': 'keep-alive', 
# 'x-test': 'true'}

# 若请求中设置了参数,则当前请求包含此参数,但不会改变跨请求参数,例:下一个请求不会携带{'x-test2':'true'}
response2= s.get(url2,headers = {'x-test2':'true'})
# print(response2.request.headers)
# {'User-Agent': 'python-requests/2.25.1', 
# 'Accept-Encoding': 'gzip, deflate',
# 'Accept': '*/*',
# 'Connection': 'keep-alive', 
# 'x-test': 'true', 
# 'x-test2': 'true'}

什么是session?
session是用来维护客户端和服务端之间传输的一种技术,每一个客户端都有一个session且唯一。
用户信息通过session保存在服务器中,客户端第一次访问服务器时就会产生一个具有唯一性的id,客户端和服务器之间利用唯一id实现用户的信息交互,这样便避免了每一次的访问都向服务端传回所有的cookies,而是利用唯一id进行信息的交互动作。

cookie是什么?:
cookie是由服务端创建的,服务端以响应头的方式发送给客户端,再次向服务器发送请求时会自动将cookie以请求头的形式传回。
cookie中记录了用户的信息,以key=value的方式保存.
cookie存放在硬盘中,第一次访问结束后服务器返回给客户端cookie,之后客户端每一次访问服务器都会带上这段数据。
cookie中包含着登录信息,如果在爬虫操作时,网页登陆之后又cookie,那么请求的时候要把cookie带上。

响应方法

方法 返回一个response对象
requests.response 返回状态信息
requests.cookies 返回cookies
requests.encoding 返回编码格式
requests.headers 返回响应头信息
requests.text 返回字符串
requests.json() 返回字典格式
requests.status_code 返回状态码
requests.content 返回字节格式

response = requests.get(url)
response.headers 返回的是响应头信息
response.request.header 返回的是请求头的信息

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

requests请求 的相关文章

随机推荐

  • Java漫谈(二)

    类名 Java编译器的设计与java源代码的语法结构是相辅相成的 先有语法 再有编译器 大家都知道 java是以类为单位进行组织的 类是java对世界的抽象描述 Java程序的运行其实就是多个类之间的相互调用 表现在源码上 java的语法规
  • 【动手学深度学习】关于数据预处理——2.2.5练习 2023.7.12

    创建包含更多行和列的原始数据集 import torch import os os makedirs os path join data exist ok True data file os path join data nba data
  • R-Modeling(step 4)

    I Regression OLSregression Description Function simple linear regression lm Y X1 data polynomial regression lm Y X1 I X
  • Ado.net总结-Command(指挥官)

    Command 概述 在 System Data SqlClient 命名空间下 对应的 Command 类为 SqlCommand 在创建 SqlCommand 实例前必须已经创建了与数据库的连接 SqlCommand 类中常用的构造方法
  • js ajax callback全局,我如何在全局javascript变量中获取Ajax内容

    pastebin代码已经做到了 我猜您实际上面临的问题是存在的 因为您的ajax调用是 异步的 这意味着您正在 异步 发出ajax请求 并立即尝试访问全局变量中的值 但它尚未尚未设定 解决方案是在onReadyStateChange回调中执
  • 如何在EXCEL中运行ChatGPT,从此不再需要记函数

    文章目录 目录 文章目录 序言 如果你可以直接使用chatGPT 如果你不可以直接使用chatGPT 序言 Excel是处理大量数据非常有用的工具 然而 找到并实施正确的公式有时可能是一个复杂和令人沮丧的经历 幸运的是 ChatGPT可以成
  • Linux服务器chattr文件被黑问题解决方法

    木马攻击问题由来阐述 我买了三年的阿里云服务器 在阿里云官网买的 已经使用了一年多了 平时拿来搭建网站 有时也拿来学习技术和开发测试 一直使用很稳定 直到近期我服务器上安装了docker并部署了springboot mysql nginx项
  • 多线程的调度机制

    假设只有一个 CPU 在任意时刻只能执行一条机器指令 每个线程只有获取 CPU 的使用权才能执行指令 多线程并发运行在宏观上看是同时运行 实际上是各个线程轮流获取 CPU 使用权才能执行指令 所谓线 程的调度就是按照特定的机制为多个线程分配
  • MySQL5.7开启通用日志功能

    起因 因项目数据库占用异常 查询数据库有哪些IP地址连接使用 Windows环境下 操作步骤 1 修改MySQL服务的my ini 文件 开启通用查询日志 general log 1 log output FILE general log
  • git format-patch详解

    git format patch详解 打包最近的一个patch git format patch HEAD 有几个 就打包几个patch的内容 或git format patch n 打包版本n1与n2之间的patch git format
  • 【Mysql高频面试题整理 一】

    Mysql高频面试题 持续手机更新ing Mysql 常用的数据库之一 面试一般会问哪些相关的问题呢 今天带大家整理一波 后面持续更新 一点浅见 欢迎各位大佬莅临指导 Mysql面试高频题有哪些呢 1 Mysql的存储引擎有哪些 有什么区别
  • 如何使用Vue实现自定义双向数据绑定?

    目录 理解Vue的双向数据绑定 sync修饰符实现双向数据绑定 自定义组件实现双向数据绑定 总结 理解Vue的双向数据绑定 在 Vue 中 双向数据绑定是一项非常强大的功能 它能够使数据和视图之间保持同步 让开发者更加方便的操作数据 在本文
  • Linux文件编程常用函数详解——read()和write()函数

    read 函数 include
  • 使用pandas把计算数据写入excel的指定单元格

    要使用 pandas 将计算数据写入 Excel 的指定单元格 您可以使用 pandas DataFrame to excel 方法 首先 您需要使用 pandas read excel 方法将 Excel 文件读入一个 pandas Da
  • Stable Diffusion使用方法

    SD的本地安装教程有很多我就不重复了 这里主要是记录我在使用SD Webui的过程中遇到的问题 总结的一些提升出图效率 出好图概率的经验 先搞几张看看效果 二次元妹妹 高达 Ok 以上只是一小部分成品 属于是抛砖引玉之作 我当时设置的参数出
  • word打不开提示安装Genko.msi该怎办

    word打不开提示安装Genko msi该怎办 今天有同学给我说电脑有问题了 启动WORD后让安装Genko msi 正好解决了顺便写一个经验吧 方法一 1 错误提示是这样的 2 首先在开始菜单打开 运行 win7直接开始菜单输入就行 然后
  • webpack5后台管理

    1 系统基于panjiachen后台管理系统模板 升级webpack5 2 github地址 https chengmanxiang webpack5 vue2 admin 3 线上地址 webpack5 vue2
  • Java实战-基于JDK的LRU算法实现、优雅的实现代码耗时统计(Spring AOP、AutoCloseable方式)

    场景 Java中基于JDK的LRU算法实现 LRU算法 缓存淘汰算法 Least recently used 最近最少使用算法 根据数据的历史访问记录来进行淘汰数据 其核心思想是 如果有数据最近被访问过 那么将来被访问的几率也更高 在Jav
  • TS2550: Property ‘entries‘ does not exist on type ‘ObjectConstructor‘.

    TS2550 Property entries does not exist on type ObjectConstructor Do you need to change your target library Try changing
  • requests请求

    请求方式 requests get 发送get请求 通过params传递参数 requests post 发送post请求 通过json data 传递参数 data 数据报文 dict字典类型 默认情况下请求头为applilcation