首页 > 其他分享 >requests模块

requests模块

时间:2023-06-04 13:33:40浏览次数:54  
标签:设置 None 12 模块 age zz requests name

1、介绍

requests是python用于处理http/https的一个第三方库,需要pip安装。

  • 注意避免安装request模块,这是一个恶意黑客仿照requests定制的模块

Python requests 模块 | 菜鸟教程 (runoob.com)

Requests: HTTP for Humans™ — Requests 2.31.0 documentation

2、request函数

def request(method, url, **kwargs):
"""
def request(self, method, url, params=None, data=None, headers=None, cookies=None, files=None,
        auth=None, timeout=None, allow_redirects=True, proxies=None, hooks=None, stream=None,
        verify=None, cert=None, json=None):
"""

 

import requests
req = requests.request(method='get', url='https://www.baidu.com')
print(req)
  • requests.request是一个函数,method和url是必要参数
  • res的类型为<class ‘requests.models.Response’>

(1)method参数

  • 必选,请求方法。可选:GET、OPTIONS、HEAD、POST、PUT、PATCH或者DELETE。设置时可以是小写,或者混杂
  • method设置错误,比如为GE,不影响请求的发送。http的请求方法就为设置的错误值的大写,由服务器决定如何处理。如果对方法有限定可能会响应302,没有限定则可能会响应200。
  • res.request.method的值即这里设置的字符串。如果是小写的get,会自动转为大写。

(2)url参数

  • 必选,表示请求路径,而且需要包括协议部分
  • 如果域名不存在http或者https服务,会报错
  • 可以直接处理https,也可以是http

(3)params参数

# q = {'name':'zz','age':12}
# q_2 = [('name','zz'),('age',22)]
# q_3 = 'name=xx&age=12'
  • 可选,作用是设置url中的请求参数,类型可以为字典或者元组的列表,或者字符串
  • 字典中的值会拼接到url中的params部分,如果未有参数,则先会添加?。如果已有参数,则直接追加,注意不会检查已有参数是否已经重名

(4)data参数

data_1 = 'abcd'	# abcd
data_2 = {'name':'zz','age':12}	# name=zz&age=12
data_3 = [('name','zz'),('age',12)] # name=zz&age=12
  • 可选,作用是设置body中的请求参数,类型可以为字符串、元组的列表和字典

(5)json参数

json_1 = 'abcd'	# b'"abcd"'
json_2 = {'name':'zz','age':12}	# b'{"name": "zz", "age": 12}'
json_3 = [('name','zz'),('age',12)]	# b'[["name", "zz"], ["age", 12]]'
  • 可选,作用是设置body部分携带的数据,以json格式发送,类型可以为字符串、元组的列表和字典

(6)headers参数

headers = {'User-Agent':'zz','age':'12', 'Cookie':'name=zz; age=123'}
  • 作用:设置请求的头部字段,类型为字典,并且字典元素的键和值都必须是str类型,否则报错
  • request方法自身默认会设置一些http请求头部字段,在指定headers参数时,会进行判断是否已设置字段,判断不区分大小写,如果重复则覆盖,如果不重复则追加字段
  • 如果覆盖,并且新设置的键和值替代之前的键和值。主要注意其键的大小写以新设置的为准
  • headers的键可以任意设置,而非一定要是http协议规定的,同时可以直接在其中设置cook

(7)cookies参数

cookies = {'name':'zz','age':'12'}
  • 作用:设置请求携带的cookie,类型为字典,并且字典元素的键和值都必须是str类型,否则报错

(8)files参数

upload_files = {'file': open('report.xls', 'rb')}
r = requests.post(url, files=upload_files)
  • 作用:上传文件
  • 在读取文件时,注意务必使用'rb'即二进制模式读取,这样获取的bytes长度才是文件的长度。

(9)timeout参数

  • 作用是设置延时,单位为秒。如果超过时间,还未请求响应,则判定报错
  • 结合wireshark分析,如果设置为0或者负数,那么requests模块不会发送请求,而是直接报错,警告需要设置大于0的值
  • 如果设置为None,则会一直等待响应接收
  • 该参数的设置可以有效避免GUI等待的卡顿,但是需要考量设置的时间长短,区分一般的网络延时,服务端处理速度慢和完全的连接不上
  • 一般情况下,设置为5秒是一个不错的尺度

(10)allow_redirects参数

  • 作用是当请求之后接到一个3xx重定向的响应,是否进行自动重定向。默认为True,表示会自动重定向,这会重置接收到的响应对象的请求对象数据,即res.request对象不是前面手动设置的对象。尤其是cookie和url
  • 一般,爬虫时会考虑进行重定向,而渗透测试需要非重定向。当然,一切并不绝对

 

标签:设置,None,12,模块,age,zz,requests,name
From: https://www.cnblogs.com/wd404/p/17455575.html

相关文章

  • 案例补充:random模块模拟随机验证码登陆验证
    案例补充:random模块模拟随机验证码登陆验证***用到的知识点【一】random模块产生随机数字(1)产生0-9之间的随机整数importrandomrandom_int=str(random.randint(0,9))(2)产生A-Z之间的字母importrandomrandom_upper=chr(random.randint(65,90))(3)产生a-z之间的字......
  • Python可视化模块
    Python可视化模块一个简单的python包就能够实现数据的可视化功能,这个第三方动态可视化的数据模块就是Pynimate效果是这样的安装pipinstallpynimate使用指南想要使用Pynimate,直接import一下就行importpynimateasnim输入数据后,Pynimate将使用函数Barplot()......
  • vscode 找不到模块“./App.vue”或其相应的类型声明。
    问题编辑器:VisualStudioCode项目类型:Vite+Vue+TS目标位置:main.ts项目运行:不受影响,正常运行,但是就是不爽解决在VisualStudioCode中安装TypeScriptVuePlugin(Volar)插件......
  • 直播平台三度关系推荐之数据采集模块分析
    下面我们就从第一个模块,数据采集模块开始。注意:在实际工作中,数据采集模块不是只针对某一个项目而言的,而是一个公共的采集平台,所有项目依赖的数据全部是来源于数据采集模块,所以在设计采集模块的时候要考虑通用性。数据采集架构详细分析在具体开始之前,我们还要再分析一些内容我......
  • 基于SqlSugar的开发框架循序渐进介绍(30)-- 整合客户关系管理系统模块功能
    以前在随笔《Winform开发框架之客户关系管理系统(CRM)的开发总结系列1-界面功能展示 》的几篇随笔中介绍过基于WInform开发框架开发的CRM系统,系统的功能主要也是围绕着客户相关信息来进行管理的,经过一些客户的定制应用,以及框架各种功能的完善,系统也已经很完善了,不过不同的CRM侧重......
  • Python time 模块
    常用#float整数位为秒time.time()#struct_timetime.localtime()#stringtime.ctime()#stringtime.asctime()转换#struct_timetime.localtime(float)#floattime.mktime(struct_time)#struct_timetime.strptime(string,"%Y-%m-%d%H:%M:%S")#......
  • 1、Ansible安装及Ansible各模块作用、使用方法
    Ansible功能1、批量执行远程命令,可以对远程的多台主机同时进行命令的执行2、批量安装和配置软件服务,可以对远程的多台主机进行自动化的方式配置和管理各种服务3、编排高级的企业级复杂的IT架构任务,Ansible的Playbook和role可以轻松实现大型的IT复杂架构4、提供自动化运维......
  • 1、Ansible安装及Ansible各模块作用、使用方法
    Ansible功能1、批量执行远程命令,可以对远程的多台主机同时进行命令的执行2、批量安装和配置软件服务,可以对远程的多台主机进行自动化的方式配置和管理各种服务3、编排高级的企业级复杂的IT架构任务,Ansible的Playbook和role可以轻松实现大型的IT复杂架构4、提供自动化运维......
  • 论文解读 | IROS 2021 | PTT:用于点云中3D单对象跟踪的点-轨道-变压器模块
    原创|文BFT机器人01背景在自动驾驶、机器人导航和增强现实等领域,3D单目标跟踪是一个重要的问题。传统的方法通常使用基于图像或激光雷达数据的2D或3D物体检测器来检测和跟踪目标。然而,这些方法通常需要大量的计算资源,并且对于复杂场景中的小目标或遮挡目标表现不佳。3D单目标跟......
  • POJO简介【pojo模块】
    DTO(DataTransferObject):数据传输对象,用于接收数据和传输数据,属性和请求参数对应。VO(ViewObject):视图对象,返回给客户端展示用的数据,例如分页对象PageResult{total,List}。PO(PersistantObject):持久化对象,对象属性和数据库表中的字段一一对应,一张表对应一个PO。POJO(PlainOrdi......