网上经常有人问我关于python爬虫Requests库的一些相关问题,相信每个做软件测试工作的的都比较关心的。那么,今天小编带大家一起学习“Requests库的请求参数和响应内容”,大家要做好笔记,有不懂的可以咨询在线老师,一对一解答。
1、requests.request-请求参数
requests.request (method, url, **kwargs):
Ø method:请求方法--get,post,put,delete等
Ø url:请求路径
Ø params:get请求参数,一般字典格式
Ø data:post请求参数,字典格式
Ø json:post请求参数,字典格式
Ø headers:请求的header,字典类型
Ø cookies:请求的cookie,字典类型
Ø files:上传的文件,字典类型
Ø auth: 进行HTTP认证,元组
Ø verify:是否验证server的TSL证书,布尔值
Ø timeout:设定超时时间,数值
Ø allow_redirects:是否运行重定向,布尔值
Ø stream:响应内容是否直接下载,布尔值
#登录ecshop
url = 'http://localhost/ecshop/user.php'
data = {'username':'user001','password':'user001','act':'act_login'}
#re = requests.post(url,data)
re = requests.request('post',url=url,data=data)
print(re.content.decode('utf-8'))
2、 requests-get请求参数
get请求特点: 请求参数在url中或params中均可。
Ø response = requests.get(url)
Ø response = requests.get(url, params=None)
Ø response = requests.get(url, params=None, **kwargs)
# #get 价格查询接口
# #方法一:请求参数直接放在URL中
# url = 'http://localhost/ecshop/goods.php?act=price&id=55&attr=&number=1'
# res1 = requests.get(url)
# print(res1.content.decode('unicode-escape'))
# #json()函数返回一个字典
# result = res1.json() #如果返回的数据是json格式,可以使用json方法获取响应体,然后获取对应的值
# print(type(result))
# print(result['err_msg'])
# print(result['result'])
# print(result['qty'])
#
# #方法二:get请求参数放到params参数中
# url = 'http://localhost/ecshop/goods.php'
# #?act=price&id=55&attr=&number=2&160248987409898
# params = {
# "act" : "price",
# "id":55,
# "attr" : None,
# "number" : 2,
# 160248987409898:None
# }
#
# res1 = requests.get(url,params=params)
# if res1.status_code == 200:
# print(res1.json()["result"])
3、requests-post请求参数
post请求特点: 请求参数在body中,参数为data和json。
Ø response = requests.post(url,data=data)
Ø response = requests.get(url, json=json)
#post方法:登录
url = 'http://localhost/ecshop/user.php'
param = {
"username":'user001',
"password":'user001',
"act":"act_login",
"submit":None
}
res1 = requests.post(url,data=param)
if res1.status_code == 200:
print(res1.text)
else:
print(res1.status_code)
4、 requests—接收响应,中文乱码处理
response = requests.get(url, params=None, **kwargs) #获取响应对象
响应对象的属性和方法:
Ø response.status_code #获取响应结果码
Ø response.encoding #获取响应的编码格式
Ø response.headers #获取响应头
Ø response.content #获取二进制形式响应内容
Ø response.text #获取字符串形式响应内容
Ø response.json() #获取json格式响应内容
Ø response.url #获取请求的url
代码示例:
import requests
# url = "http://www.baidu.com"
# res1 = requests.get(url)
# print('URL:',res1.url)
# print('响应码:',res1.status_code)
# print('响应头:',res1.headers)
# print('响应体:',res1.text)
# #中文乱码的解决
# #方法一:通过apparent_encoding指定解码时的类型
# print(res1.encoding) #根据客户端信息,采取解码格式 ISO-8859-1
# print(res1.apparent_encoding) #根据内容推断解码格式 utf-8
# res1.encoding = res1.apparent_encoding
# print(res1.text)
#
# #方法二:在字节码的基础上,直接对内容做解码处理
# print(res1.content) #content是字节码内容
# print(res1.content.decode('utf-8'))
# #商品总价查询接口
# url = 'http://localhost/ecshop/goods.php?act=price&id=55&attr=&number=2&160248987409898'
# res1 = requests.get(url)
# print(res1.encoding)
# print(res1.apparent_encoding) #推测的编码不一定正确
# print(res1.content.decode('unicode-escape'))
今天关于“Requests库的请求参数和响应内容”就学习完啦,大家喜欢的话记得每天来这里和小编一起学习涨薪技能哦。(笔芯)
川石学院零基础入门到精通课程免费学习即扫下方二维码,名师在线辅导!
附:川石学院全国校区最新开班时间,课程资料获取13691729932(微信同号)。