request获取请求参数的方法,request post请求参数
本文主要介绍request的基本用法以及各种请求模式的参数示例。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
00-1010各种请求方法请求各种参数请求基本使用get请求携带参数get请求携带头get请求携带cookiepost请求携带数据(注册、登录)会话对象乱码问题分析json数据上传文件使用代理
目录
pip3安装请求
导入请求
r=requests . get( https://www . cn blogs.com )
r=requests . post( https://www . cn blogs.com ,data={key:value})
r=requests . put( https://www . cn blogs.com ,data={key:value})
r=requests . delete( https://www . cn blogs.com )
r=requests . head( https://www . cn blogs.com )
r=requests . options( https://www . cn blogs.com )
各种请求方式
解释params字典或字节序列作为参数,数据字典、字节序列或添加到url的文件对象作为参数,jsonJSON格式数据作为请求的内容,headers字典作为请求的内容,cookie字典或CookieJar作为HTTp自定义头,请求中的cookieauth元组,支持HTTP认证功能的文件字典类型,设置传输文件超时的超时时间,单位是代理字典类型,设置访问代理服务器,添加登录认证allow_redirects重定向开关。默认为Truestream获取内容并立即下载,Trueverify验证SSL证书开关,Truecert本地SSL证书路径。
request各种参数
导入请求
response=requests . get( https://www . cn blogs.com/ker mitjam/)
打印(响应.文本)
Print(respone.text) #响应正文被转换成str
Print(respone.content) #响应体二进制(图片、视频)
Print (response.status _ code) #响应状态代码
Print(respone.headers) #回应标题
服务器返回的Print(respone.cookies) # cookie
将(response.cookies.get _ dict ()) #打印到字典中
print(respone . cookie . items())
Print(respone.url) #当前请求的地址
Print(respone.history) #如果有重定向,把它放在一个列表中。看看最后一个请求是从哪里来的。(图片防盗链)
打印(respone.encoding) #编码方法
Print (respond.iter _ content ()) #视频,图像迭代值
content-length # 查看下载前文件大小
response.iter_content() # 视频,图片迭代取值
with open("a.mp4",wb) as f:
for line in response.iter_content():
f.write(line)
get请求携带参数
# 方式一:会转码,不推荐response = requests.get(https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3)
# 方式二:推荐
response = requests.get(https://www.baidu.com/,params={name:美女,age:18})
get请求携带headers头
respone = requests.get(http://127.0.0.1:8000/,params={name:美女,age:18},headers={
# 标志,什么东西发出的请求,浏览器信息,django框架,从哪取?(meta)
User-Agent: request,
# 上一个页面的地址,图片防盗链
Referer: xxx
})
print(respone.status_code)
get请求携带cookie
带cookie,随机字符串(用户信息:也代表session),不管后台用的token认证,还是session认证
一旦登陆了,带着cookie发送请求,表示登陆了(下单,12306买票,评论)
# 第一种方式ret = requests.get(http://127.0.0.1:8000/,params={name:美女,age:18},
headers={
cookie: key3=value;key2=value,
})
# 第二种方式
ret = requests.get(http://127.0.0.1:8000/,params={name:美女,age:18},
cookies={"islogin":"xxx"})
print(ret.status_code)
post请求携带数据(注册、登录)
# data:urlencoded编码ret = requests.post(http://127.0.0.1:8000/, data={name: "jeff", age: 18})
# data:json编码
import json
data = json.dumps({name: "jeff", age: 18})
ret = requests.post(http://127.0.0.1:8000/, json=data)
print(ret)
# 注意:编码格式是请求头中带的,所以可以手动修改,在headers中改
session对象
# session对象session=requests.session()
# 跟requests.get/post用起来完全一样,但是它处理了cookie
# 假设是一个登陆,并且成功
res = session.post(http://127.0.0.1:8000/)
# # 再向该网站发请求,就是登陆状态,不需要手动携带cookie
res = session.get("http://127.0.0.1:8000/")
print(res)
乱码问题
# 加载回来的页面,打印出来,乱码(我们用的是utf8编码),如果网站用gbk,ret = requests.get(http://127.0.0.1:8000/)
ret.encoding=gbk # 修改编码
print(ret.apparent_encoding) # 当前页面的编码
# ret.encoding = ret.apparent_encoding
print(ret.encoding)
print(ret.apparent_encoding)
解析json数据
# 返回数据,有可能是json格式,有可能是html格式ret=requests.get(http://127.0.0.1:8000/)
# print(type(ret.text))
# print(ret.text)
a=ret.json()
print(a[name])
print(type(a))
使用代理
代理简单解释:
代理其实就是一个中介,A和B本来可以直连,中间插入一个C,C就是中介。
#高匿:服务端,根本不知道我是谁
#普通:服务端是能够知道我的ip的
#http请求头中:X-Forwarded-For:代理的过程
爬虫使用正向代理好处:
1.突破频率限制。做个代理池,每次请求都是不同的Ip,服务器认为是不同的用户
2.不会封自己的ip。
正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端.
反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端
ret = requests.get(https://www.pearvideo.com/, proxies={http: 47.115.54.89})print(type(ret.text))
print(ret.text)
上传文件
# 爬虫用的比较少,后台写服务file = {myfile: open("1.txt", rb)}
ret = requests.post(http://127.0.0.1:8000/, files=file)
print(ret.content)
以上就是request基本使用及各种请求方式参数的示例的详细内容,更多关于request使用及请求方式参数的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。