requests是python中实现http请求的一种方式,requests是第三方模块,该模块在实现http请求时要比urllib模块简化很多,操作更加人性化。特性如下:
Keep-Alive&连接池
Unicode响应体
国际化域名和URL
HTTP(S)代理支持
带持久Cookie的会话
文件分块上传
浏览器式的SSL认证
流下载
自动内容解码
连接超时
基本/摘要式的身份认证
分块请求
优雅的key/value Cookie
支持.netrc
自动解压
以GET请求方式如下:
import requests response=requests.get('http://www.baidu.com') print(response.status_code) #打印状态码 print(response.url) #打印请求url print(response.headers) #打印头部信息 print(response.cookies) #打印cookie信息 print(response.text) #以文本形式打印网页源代码 print(response.content) #以字节流形式打印网页源代码
以POST请求方式,发送HTTP网络请求的代码如下:
import requests data={'word':'hello'} #表单参数 response=requests.get('http://httpbin.org/post',data=data) print(response.content)
requests模块不仅提供了以上两种的请求方式,还提供了以下多种网络请求的方式
import requests data={'word':'hello'} requests.put('http://httpbin.org/put',data={'key':'value'}) #PUT请求 requests.delete('http://httpbin.org/delete') #DELETE请求 requests.head('http://httpbin.org/get') #HEAD请求 requests.options('http://httpbin.org/get') #OPTIONS请求
如果发现请求的URL地址中参数是跟在问号后面。requests模块提供了传递参数的方法,允许使用params关键字参数,以一个字符串字典来提供这些参数。例如:
import requests payload={'key1':'value1','key2':'value2'} response=requests.get('http://httpbin.org/get',params=payload) print(response.content)