当前位置: 首页 > news >正文

requests 中data=xxx、json=xxx、params=xxx 分别什么时候用

如果是要做爬虫模拟一个页面提交,看原页面是post还是get,以及Content-Type是什么。

  • GET 请求 使用 params=xxx,查询参数会被编码到 URL 中。
  • POST 请求,Content-Type为 application/x-www-form-urlencoded的,使用 data=xxx,(常见于直接 HTML 表单提交)。
  • POST 请求,Content-Type为 application/json的 使用 json=xxx,常见于通过ajax提交。
  • POST 请求,Content-Type为 multipart/form-data的,有上传文件,使用files=files, data=xxx (常见于直接 HTML 表单提交)

-------

  • 如果post请求同时传递 data 和 json 参数时,requests 库会自动忽略 data,并且只发送 json 中的数据作为请求体
  • post请求可以带params=xxx 这个参数。response = requests.post(url, json=json_data, params=xxx) 不会报错。
  • GET 请求不能带 json=json_data 参数。若使你尝试传递 json=json_data 参数,requests 库会忽略它

-------- 

如果multipart/form-data中一次请求上传多个文件,则

    files = {'file1': ('file1.jpg', file1, 'image/jpeg'),'file2': ('file2.jpg', file2, 'image/jpeg')}

GET 请求:

import requestsurl = 'https://example.com/api'
params = {'name': 'John','age': 30
}response = requests.get(url, params=params)

 相当于get访问 URL:https://example.com/api?name=John&age=30

POST请求:application/x-www-form-urlencoded

import requestsurl = 'https://example.com/api'
data = {'name': 'John','age': 30
}response = requests.post(url, data=data)

相当于直接网页提交表单

POST请求 application/json  (常见于AJAX提交)

import requestsurl = 'https://example.com/api'
data = {'name': 'John','age': 30
}response = requests.post(url, json=data)

POST请求 multipart/form-data

import requestsurl = 'https://acc.abc.com/api/home/UploadIDCard'# 文件部分
file_path = 'path/to/your/file.jpg'
with open(file_path, 'rb') as file:files = {'Files': ('idcard_front.jpg', file, 'image/jpeg')  # (filename, file-object, mime-type)}# 其他参数部分data = {'name': 'John','age': 30}# 发起POST请求response = requests.post(url, files=files, data=data)

import requestsurl = 'https://example.com/upload'# 打开多个文件
file1_path = 'path/to/your/file1.jpg'
file2_path = 'path/to/your/file2.jpg'with open(file1_path, 'rb') as file1, open(file2_path, 'rb') as file2:files = {'file1': ('idcard_front.jpg', file1, 'image/jpeg'),'file2': ('idcard_back.jpg', file2, 'image/jpeg')}# 其他参数部分data = {'name': 'John','age': 30}# 发起POST请求,上传多个文件response = requests.post(url, files=files, data=data)

http://www.lryc.cn/news/455006.html

相关文章:

  • 毕设 大数据抖音短视频数据分析与可视化(源码)
  • 【SQL】深入理解SQL:从基础概念到常用命令
  • 一文看懂计算机中的大小端(Endianess)
  • 如何给父母安排体检?
  • C++之模版进阶篇
  • Vue3 中的 `replace` 属性:优化路由导航的利器
  • vite学习教程06、vite.config.js配置
  • 【大数据】Flink CDC 实时同步mysql数据
  • JavaEE: 深入解析HTTP协议的奥秘(1)
  • OpenStack Yoga版安装笔记(十六)Openstack网络理解
  • PEFT库和transformers库在NLP大模型中的使用和常用方法详解
  • 静止坐标系和旋转坐标系变换的线性化,锁相环线性化通用推导
  • AI学习指南深度学习篇-学习率衰减的变体及扩展应用
  • 成都睿明智科技有限公司真实可靠吗?
  • 力扣6~10题
  • IntelliJ IDEA 2024.2 新特性概览
  • C++基础(12)——初识list
  • 系统架构设计师论文《论NoSQL数据库技术及其应用》精选试读
  • 产品经理产出的原型设计 - 需求文档应该怎么制作?
  • phenylalanine ammonia-lyase苯丙氨酸解氨酶PAL功能验证-文献精读61
  • 柯桥生活口语学习之在化妆品店可以用到的韩语句子
  • Ubuntu 安装 Docker Compose
  • C++面试速通宝典——7
  • 毕业设计 大数据电影数据分析与可视化系统
  • 第三届图像处理、计算机视觉与机器学习国际学术会议(ICICML 2024)
  • OJ在线评测系统 微服务技术入门 单体项目改造为微服务 用Redis改造单机分布式锁登录
  • 【机器学习】网络安全——异常检测与入侵防御系统
  • 【C语言】基础篇续
  • 文件丢失一键找回,四大数据恢复免费版工具推荐!
  • 【学习笔记】手写一个简单的 Spring MVC