requests是使用Python语言编写的第三方网络请求库,其用法相较于urllib更加方便,可以节省大量的开发工作。
urllib获取一个请求的过程需要经过:请求编码、请求实例化、回包实例化、回包解码
get请求
1、request = urllib.request.Request(url,headers)
2、response = urllib.request.urlopen(request)
3、response = response.read().decode(‘utf-8’)回包解码
4、json_respon = json.loads(response)json格式解码
post请求
1、data = data.encode(‘urf-8’) 字符编码
2、request = urllib.request.Request(url,headers)
3、response = urllib.request.urlopen(request,data)
4、json_response = json.loads(response)json格式解码
requests则自带编码、解码、json解码的神技能,可以省去很多繁琐的步骤
请求参数:
params = {key1:value1,key2:value2,...}#URL传递参数
headers = {key1:value1,key2:value2,...}#请求头
data = {key1:value1,key2:value2,...}#post请求数据
data = json.dumps(data)
timeout = 3 #设置超时时间为3秒
data为json数据时,需要调用json.dumps方法格式化转成字符串格式
json.dumps:dict转成str,转换对象是字符串
json.loads:str转成dict,转换对象是字符串
json.dump:dict转成str,转换对象是文件
json.dump:str转成dict,转换对象是文件
dict:{'name':'many', 'age': 10, 'sex': 'male'}
json:{"name":"many", "age": 10, "sex": "male"}
请求类型:
req = requests.get(url,params=params,headers=headers,timeout=timeout) #获取
req = requests.post(url,data=data,headers=headers,timeout=timeout) #请求服务器接受所指定的文档作为对所标识的URI的新的从属实体
req = requests.put(url) #更新
req =requests.delete(url) #删除
req =requests.head(url) #只请求页面的首部
req =requests.option(url) #允许客户端查看服务器的性能
获取响应内容:
req.json() #json格式处理(requests自带的json解码器)
req.content #以字节的方式显示
req.text #以文本的方式显示
req.raw #返回原始响应体
req.headers #以字典对象存储服务器响应头
req.encoding #获取网页编码格式
req.status_code #获取响应状态码
req.cookies[‘example_cookie_name’] #读取cookies
req.raise_for_status() #失败请求(非200)抛出异常
proxies = {“http”:http1,”https”:http2}#设置代理
持久性连接...
未完,待续
网友评论