IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python中Request Payload参数使用(持续更新) -> 正文阅读

[Python知识库]python中Request Payload参数使用(持续更新)

在post请求中的参数中,Request Payload会经常碰到,但很多同学可能并未真正如何去使用,碰到复杂点的Request Payload往往一头雾水,下面就我日常所遇到的一些案例做个简单的说明,希望对大家有帮助。

关于Form Data与Request Payload的区别,可以参考文章:https://juejin.cn/post/6844904149809627149
https://leejason.blog.csdn.net/article/details/88720102

1 正常的json参数(非Request Payload)

这种是最普通常见的POST请求类型,请求头中Content-Type值通常为:application/x-www-form-urlencoded,也就是所谓的Form Data方式。
在scrapy的用法如下:

param = {"playerid": "25635555"}
return scrapy.FormRequest(url=self.url_post,
                          formdata=param,
                          meta={
                                'gameUserName': seed_keyword, #自定义参数
                                'SpiderRunTime': SpiderRunTime,#自定义参数
                                  },
                          dont_filter=True,
                          callback=self.parse)

在post中用法
requests.post(self.url_post, data=param )

2 简单Request Payload

如果发送失败的话,记得添加method=“POST”

param = {"playerid": "25635555"}
return scrapy.FormRequest(url=self.url_post,
                          body=json.dumps(param),#字典转换为json
                          meta={
                              'gameUserName': seed_keyword, #自定义参数
                              'SpiderRunTime': SpiderRunTime,#自定义参数
                          },
                          dont_filter=True,
                          callback=self.parse)

3 复杂Request Payload

如果是复杂Request Payload,比如Request Payload是列表或或有子字典等,简单用json.dumps(param)转换后请求会经常报错。且使用Scrapy框架时利用自带的FormReuqest 是无法完成要求的。一般用python requests,直接将内容转换为字符串提交。如下:
在这里插入图片描述
处理这个参数一般有两种方式:
A:字典转字符

headers = {
    "Accept": "application/json, text/plain, */*",
    "Content-Type": "application/json;charset=UTF-8;",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36",
}
data = {
    "data": {
        "mainSearchPcConditionForm": {
            "city": "410",
            "dq": "410",
            "pubTime": "",
            "currentPage": 0,
            "pageSize": 40,
            "key": "",
            "suggestTag": "",
            "workYearCode": "",
            "compId": "",
            "compName": "",
            "compTag": "",
            "industry": "",
            "salary": "",
            "jobKind": "",
            "compScale": "",
            "compKind": "",
            "compStage": "",
            "eduLevel": ""
        },
        "passThroughForm": {
            "scene": "init",
            "ckId": "rdfpkd81uti5ryk4h8paa16kszjlk0kb",
            "suggest": None # 这里需要注意的是,在浏览器中我们看到这字段的值是null,由于python语法没有null类型,只能None。有些人喜欢用第三方工具从浏览器搬迁,比如用curl2py生成的结果,是‘’‘"suggest": null‘’‘,需要手动修改为"suggest": None,如果修改成"suggest": "null",转换后发送请求会报错的。
        }
    }
}

data = json.dumps(data)
res = requests.post(
    "https://apic.liepin.com/api/com.liepin.searchfront4c.pc-search-job",
    headers=headers,
    data=data
)

B:直接构造字符串
如下:

data = '''
    {"data":{"mainSearchPcConditionForm":{"city":"410","dq":"410","pubTime":"","currentPage":0,"pageSize":40,"key":"","suggestTag":"","workYearCode":"0","compId":"","compName":"","compTag":"","industry":"","salary":"","jobKind":"","compScale":"","compKind":"","compStage":"","eduLevel":""},"passThroughForm":{"scene":"init","ckId":"hnk5a1i55f1uelq0oqzjjxkp0edju1eb","suggest":null}}}
'''
res = requests.post(
    "https://apic.liepin.com/api/com.liepin.searchfront4c.pc-search-job",
    headers=headers,
    data=data
)
print(res.text)
print(res.status_code)
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:52:04  更:2022-10-31 11:53:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 3:01:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计