request获取请求参数的方法,request post请求参数

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: