主要是针对写法
一.requests.get
requests.get是调用了requests.request('get', url, params=params, **kwargs)
1.url
协议://域名?参数
如
:https://www.baidu,com/s?kw=11111
2.params
params= {传参的名称=传参的值}字典的形式
有几种情况
:
url中有参数,params也有参数
:最终结果两者的参数都生效,最终参数url中的+params中
url中有参数,params也有参数名称相同
:最终结果两者的参数都生效,且会把参数名称相同放在同一列表中
如
url ='http://httpbin.org/get?name=321'
response = requests.get(url=url,params={'name':'123'},headers=headers)
print(response.text)
'''
"args": {
"name": [
"321",
"123"
]
},
'''
3.headers
headers = {xx:xx}字典形式传参
4.cookies
cookies= {xx:xx}字典形式传参
注意点
:headers参数中如果有cookies,再传cookies参数不生效
5.proxies
proxies = {'http':'http://端口:ip'}或者proxies = {'https':'https://端口:ip'}
后面如果是http前面必须http,https同理
6.timeout
请求时间
timeout = int
单位秒
7.allow_redirects
allow_redirects = BOOL
参数true
二.requests.post
requests.post是调用了request('post', url, data=data, json=json, **kwargs)
post请求传参和get不一样有其他都一样所有没有params
但是会有data
,json
,files
三个属性对应他三种传参方式
post三种传参方式:
- formdata:对应参数
data
- json(对于这个补充一个如果你看到json数据时
jqxxx(js对象)
这是jsonp格式):对应参数json
- files:对应参数
files
1.data
data ={}字典的形式
2.json
json={}字典的形式
注意点
:data
与json
参数共存的是情况下只会生效data里的参数
3.files
写法固定
files = {'文件名':open(文件路径
,'rb')}
三.概念
params
:字典或字节序列,作为参数增加到链接中data
:字典,字节序列或文件对象,作为请求的内容json
:JSON格式的数据,作为Request的内容headers
:字典,HTTP定制头(模拟浏览器进行访问)cookies
:字典或CpplieJar,Request中的cookieauth
:元祖,支持HTTP认证功能files
:字典类型,传输文件timeout
:设定超时时间,秒为单位proxies
:字典类型,设定访问代理服务器,可以增加登陆认证allow_redirects
:True//False,默认为True,重定向开关stream
:True/False,默认为True,获取内容立即下载开关verify
:True/False,默认为True,认证SSL证书开关cert
:本地SSL证书路径