一、requests库的常用方法

1) 这是一种使用方式,即没有headers,只有参数。

import requests
r = requests.get('https://api.github.com/events', params = {'key': 'value'})
# 注意使用的是params
r = requests.post('http://httpbin.org/post', data = {'key':'value'})
# 注意使用的是data

2)第二种使用方式,加入headers(可加入访问的浏览器,身份认证等)

import requests
url = 'https://www.baidu.com/s?'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36','Authorization': 'Bearer {}'.format(data_token)  # token认证
或者'Authorization': 'Appcode {}'.format(appcode)    #appcode认证(简单认证)
}
# 在get方法中添加params参数
response = requests.get(url, headers=headers, params={"wd": "赵丽颖"})

二、params与data的区别

params:

与get进行联用。是字典或者字节序列,作为参数增加到URL中。不仅访问URL,还可以向服务器携带参数。简单来讲也就是说对于原来的网址进行内容的提交形成新的url。

data:

与requests.post()进行联用

在通过requests.post()进行POST请求时,传入报文的参数有两个,一个是data,一个是json。

常见的form表单可以直接使用data参数进行报文提交,而data的对象则是python中的字典类型;

而有时会遇到一种payload报文,这是一种json格式的报文,因此传入的报文对象也应该是格式的;

data={'xx':'xx'}import requestimport json# 1requests.post(url, data=json.dumps(data))# 2-json参数会自动将字典类型的对象转换为json格式requests.post(url, json=data)#很明显如果是data其格式必须为字符串这时候要进行json模块的转化,而json进行传的时候就不需要进行转换

三、get与post区别

GET方法

在GET方法中,数据将作为URL的参数发送,这些参数通常是由&符号分隔的名称和值对的字符串。通常,具有GET数据的URL将如下所示:

1

http://www.php.cn/action.php?name = john&age = 24

在URL中name和age都是GET参数,john和24是这些参数的值;多个“参数=值”可通过与&符号级联被嵌入URL里。人们只能通过GET方法发送简单的文本数据。

使用GET方法的优点和缺点

1、由于GET方法发送的数据显示在URL中,因此可以使用特定查询字符串值为页面添加书签。

2、GET方法不适合传递用户名和密码等敏感信息,因为这些信息在URL查询字符串中完全可见,并且可能作为访问页存储在客户端浏览器的内存中。

3、由于GET方法将数据分配给服务器环境变量,因此URL的长度是有限的。因此,要发送的总数据存在限制。

POST方法:

在POST方法中,数据作为包在与处理脚本的单独通信中发送到服务器;通过POST方法发送的数据在URL中不可见。

POST方法适用于可以传递大量信息的情况。当服务器通过采用POST的表单接收请求时,它在对URL进行请求之后立即传输表单输入的所有相关信息。

使用POST方法的优点和缺点

1、它比GET更安全,因为用户输入的信息在URL查询字符串或服务器日志中永远不可见。

2、可以传递的数据量有一个更大的限制,一个人可以使用POST发送文本数据和二进制数据(上传文件)。

3、由于POST方法发送的数据在URL中不可见,因此无法使用特定查询为页面添加书签。

举例具体来说:

import requestsurl='http://www.baidu.com'
#下面使用requests.request(method, url, **kwargs)
re=requests.request('GET',url)

经验证,可用。

我们试着传入一个字典,首先用params参数。

结果为:

亮点在url和args。

我们还用get方法,把dic这个字典传给data试试看。

亮点还是在args和url。惊喜地发现,dic这个字典没传进去。

这是因为:

params是用来发送查询字符串,而data是用来发送正文的。post方法和get方法的特性是:这两种参数post方法都可以用,get方法只能发查询字符串,不能发送正文。

接下来试试看post方法:

上面这是用data参数传字典的,亮点在form。

再试试用params参数传这个字典:

亮点在url和args。

所以,args,url与params参数有直接联系。而form与data有直接联系。

四、参考博客

python爬虫之 requests库的使用 - 灰信网(软件开发博客聚合) (freesion.com)

深入requests库params|data|json参数 | data (lmlphp.com)

(4条消息) requests模块params与data的区别_暴走的蜗牛g的博客-CSDN博客_params requests

GET和POST方法的区别是什么-php教程-PHP中文网

requests库及相关知识点(get,post区别,params与data区别)相关推荐

  1. Elastic:集群相关知识点总结(一)数据流 Data Stream、索引生命周期 ILM、可搜索快照 searchable snapshots、跨集群搜索 CCS、跨集群复制 CCR

    0.引言 集群管理是ES的核心重点,因此相关的知识点至关重要,本期主要针对数据流.索引生命周期.可搜索快照.跨集群搜索.跨集群复制进行讲解 1.数据流 Data Stream 官方文档:Data st ...

  2. 爬虫笔记(一)——Requests库

    文章目录 写在前面 一.Requests库入门 1.Requests库的安装 (1)安装Requests库 (2)测试Requests库 2.Requests库的get()方法 (1) get()方法 ...

  3. 接口测试 — 使用Requests库发送POST请求

    POST请求用于向服务器提交数据,比如提交一个表单新建一个用户.或修改一个用户信息等操作. 对于POST请求,我们可以通过浏览器开发者工具或者其他外部工具来进行抓包,得到请求的URL.请求头(requ ...

  4. Requests库与response属性

    Requests库与Response属性 一.安装 二.原理 三. 方法 1. requests库的几个主要方法 1.1 requests.request方法 1.2 requests.get方法 1 ...

  5. Crawler:基于BeautifulSoup库+requests库+伪装浏览器的方式实现爬取14年所有的福彩网页的福彩3D相关信息,并将其保存到Excel表格中

    Crawler:Python爬取14年所有的福彩信息,利用requests库和BeautifulSoup模块来抓取中彩网页福彩3D相关的信息,并将其保存到Excel表格中 目录 输出结果 核心代码 输 ...

  6. python post与get的区别_Python Requests库 Get和Post的区别和Http常见状态码

    (1)   在客户端,Get方式在通过URL提交数据,数据在URL中可以看到:POST方式,数据放置在HTML HEADER内提交. (2)   GET方式提交的数据最多只能有1024 Byte,而P ...

  7. 浅谈Python两大爬虫库——urllib库和requests库区别

    一.前言 在使用Python爬虫时,需要模拟发起网络请求,主要用到的库有requests库和python内置的urllib库,一般建议使用requests,它是对urllib的再次封装. 那它们两者有 ...

  8. python gpu加速库比matlab快吗_Python之Unittest和Requests库详解

    1.按类来执行 import unittest class f1(unittest.TestCase): def setUp(self): pass def tearDown(self): pass ...

  9. 第07讲:入门首选,Requests 库的基本使用

    上一课时我们了解了一些学习爬虫所需要的基本知识.从本课时开始,我们正式步入Python 爬虫的大门. 学习爬虫,最基础的便是模拟浏览器向服务器发出请求,那么我们需要从什么地方做起呢?请求需要我们自己来 ...

  10. python中使用requests库获取昵图网图片,且正则中re.S的用法

    python中使用requests库获取图片,且正则表达式中re.S的用法以及r.text和r.content的区别和搜索关键词 这里我获取的是昵图网的图片 代码附上 这里我获取的是2020的图片 i ...

最新文章

  1. 代码详解 | 用Pytorch训练快速神经网络的9个技巧
  2. sql server中的decimal或者numeric的精度问题 (转载)
  3. “旧城改造”的背后——银泰新零售阿里云解决方案(上)
  4. 1分钟了解CDN内容分发技术
  5. R中大数据量数据框的合并慎重使用rbind
  6. python self 值自动改变,在python中对self的理解
  7. 为什么修改了ie级别里的activex控件为启用后,还是无法下载,显示还是ie级别设置太高?
  8. 使用LSTM建立seq2seq模型进行语言翻译
  9. 【逆强化学习-1】学徒学习(Apprenticeship Learning)
  10. python字典求平均值_Python - 字典中各个键的每个值的均值
  11. Oracle使用数据泵 (expdp/impdp)实施迁移
  12. centos8对外开发指定接口
  13. 同样一句代码,在类内调用,跟类外调用结果不同?
  14. 机器学习笔记(一):机器的学习定义、导数和最小二乘 | 凌云时刻
  15. mike21 matlab tools,Mike post process with Matlab toolbox
  16. DTcms-【知识点】-知识点缴获
  17. 2020互联网公司中秋礼盒大比拼(22家互联网厂商)
  18. Java学习十四,JDBC,反射
  19. git基础教程(11) git checkout命令,掌握这些足以
  20. Owin + WebApi + OAuth2 搭建授权模式(授权码模式 Part I)

热门文章

  1. 通通WPF随笔 3 艺术二维码素材生成器
  2. python 通达信k线_python日线通达信,通达信 主图默认显示每只股票上市以来所有日线...
  3. java开发接口文档_java之接口文档规范
  4. 桥接命令brctl的用法
  5. learun通用权限系统框架功能实现设计
  6. 17个值得收藏的国内外短信接码平台合集
  7. TCPDF支持php7,php – 我不能要求tcpdf库
  8. 嵩天python测验_嵩天老师《Python语言程序设计》第2周测试题笔记
  9. 解决IDEA中leetcode插件出现中文乱码问题
  10. 用计算机思维认识摩斯密码(摩斯密码速记)