requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到
之前没有记录这个模块的使用方法,现在补充记录下
首先我们安装这个模块
pip install requests
然后主要的用法以下几种
post/get请求
r = requests.get("http://www.sulao.cn/")
通常,你想要发送一些编码为表单形式的数据—非常像一个HTML表单。 要实现这个,只需简单地传递一个字典给 data 参数。你的数据字典 在发出请求时会自动编码为表单形式
param = { key1: value1, key2: value2 } r = requests.get(", data=param)
我们也可以在header中携带信息进去
headers = { "Content-Type": "application/json", } r = requests.get("http://www.sulao.cn/", data=param, headers=headers)
r.text 返回headers中的编码解析的结果,可以通过r.encoding = 'gbk'来变更解码方式
r.content返回二进制结果
r.json()返回JSON格式,可能抛出异常
r.status_code
r.raw返回原始socket respons,需要加参数stream=True
POST和GET用法基本一样
下载图片
r = requests.get("https://sulao.cn/zb_users/upload/2019/01/201901171547691686645594.jpg") with open("test.jpg", "wb") as f: f.write(f.content)
传递文件
files = {'file': open('record.log', 'rb')} r = requests.get("http://www.sulao.cn/", files=files)
配置files,filename, content_type and headers
files = {'file': ('record.log', open('record.log', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})} files = {'file': ('record.log', 'some,data,to,send\nanother,row,to,send\n')}