1、requests介绍及简单使用

(1)Requests介绍

流行的接口http(s)请求工具

使用功能强大、简单方便、容易上手

(2)Requests简单使用

安装Requests包

 $ pip3 install requests

简单使用

import requests

requests.get(“http://www.baidu.com”)

Requests请求返回介绍

r.status_code #响应状态

r.content #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩

r.headers #以字典对象存储服务器响应头,若键不存在则返回None

r.json() #Requests中内置的JSON

r.url # 获取url r.encoding # 编码格式

r.cookies # 获取cookie

r.raw #返回原始响应体

r.text #字符串方式的响应体,会自动根据响应头部的字符编码进行

r.raise_for_status() #失败请求(非200响应)抛出异常

 

 

2、Requests方法封装

封装requests get方法

#1、创建封装get方法

def requests_get(url,headers):

#2、发送requests get请求

   r = requests.get(url,headers = headers)

#3、获取结果相应内容

  code = r.status_code

   try:

    body = r.json()

  except Exception as e:

    body = r.text

#4、内容存到字典

  res = dict()

  res[“code”] = code

  res[“body”] = body

#5、字典返回

  return res

封闭requests post方法

#post方法封装

#1、创建post方法

def requests_post(url,json=None,headers=None):

#2、发送post请求

  r= requests.post(url,json=json,headers=headers)

#3、获取结果内容

  code = r.status_code

   try:

    body = r.json()

   except Exception as e:

    body = r.text

#4、内容存到字典

  res = dict()

  res[“code”] = code

  res[“body”] = body

#5、字典返回

  return res

封装requests公共方法

  • 增加cookies,headers参数
  • 根据参数method判断get/post请求

def requests_api(self,url,data = None,json=None,headers=None,cookies=None,method=”get”):

  if method ==”get”:

  #get请求

    self.log.debug(“发送get请求”)

    r = requests.get(url, data = data, json=json, headers=headers,cookies=cookies)

  elif method == “post”:

  #post请求

    self.log.debug(“发送post请求”)

    r = requests.post(url,data = data, json=json, headers=headers,cookies=cookies)

  #2. 重复的内容,复制进来

  #获取结果内容

  code = r.status_code

  try:

    body = r.json()

  except Exception as e:

    body = r.text

  #内容存到字典

  res = dict()

  res[“code”] = code

   res[“body”] = body

  #字典返回

  return res

重构get方法

  • 调用公共方法request_api,
  • 参数:固定参数:url,method
  • 其它参数: **args

#1、定义方法

def get(self,url,**kwargs):

#2、定义参数

#url,json,headers,cookies,method

#3、调用公共方法

  return self.requests_api(url,method=”get”,**kwargs)

重构post方法

  • 调用公共方法request_api,
  • 参数:固定参数:url,method
  • 其它参数: **args

def post(self,url,**kwargs):

#2、定义参数 #url,json,headers,cookies,method

#3、调用公共方法

  return self.requests_api(url,method=”post”,**kwargs)

版权声明:本文为siguadd原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/siguadd/p/14822720.html