Python原生库urllib库不太方便使用,本着"人生苦短, 我用Python"的珍惜生命精神, 基于urllib, 开发了一个对人类来说, 更好使用的一个库——requests
requests模块的使用方法基本上是requests.方法(method,url,**kwargs),括号中传递各种参数的形式来实现不同的应用场景。
各种请求方法:
- request(method,url,**kwargs)
- get(url, params=None, **kwargs)
- post(url, data=None, json=None, **kwargs)
- head(url, **kwargs)
- options(url, **kwargs)
- put(url, data=None, **kwargs)
- patch(url, data=None, **kwargs)
- delete(url, **kwargs)
据源代码显示,下面七种也是基于request方法实现的
request方法详细介绍:
requests.request(method,url,**kwargs)
参数详解:
- method:请求类型
- url:请求的url
**kwargs:动态参数,都是可选参数
- params:
参数类型:字典或bytes
作用:一般用于get请求时传递数据
- data:
参数类型:字典,元祖列表、bytes、类文件对象
作用:放在请求体中,一般用于post请求传递数据,会自动把数据转换成为&符号连接的形式,如果需要json字符串格式, 需要手动处理用json模块转换, 也可以借助另一个参数json
- json:
参数类型:字典
作用:放在请求体中,一般用于post请求传递数据,会自动把字典转换成json字符串格式
- headers
参数类型:字典
作用:定义HTTP请求头描述
- cookies:
参数类型:字典、Cookiejar
作用:搞定发送给服务器的cookie
- files
参数类型:字典类型1:
{"name": file-like-objects}
字典类型2
{"name": file-tuple} name:服务器接收文件信息的字段名字
file-tuple:('filename', fileobj, 'content_type', custom_headers)
filename:文件名,不用需索引文件
fileobj:文件句柄
content_type:文件类型
custom_headers:文件头部信息
作用:向服务器上传文件
- auth
参数类型:元祖
作用:用于HTTP Basic/Digest/Custom HTTP授权
- timeout
参数类型:float:超时时长
tuple(连接超时,读取超时)
作用:控制请求超时时间
- allow_redirects
参数类型:bool (默认为True)
作用:控制是否支持重定向
- proxies
参数类型:字典 {"协议":URL}
作用:设置请求代理
- verify
参数类型:bool 是否验证SSL ,默认为True
string CA证书存放的路径
作用:验证HTTPS请求
- cert
参数类型:string ssl client cert file(.pem)
tuple ("cent":"key")
作用:客户端验证
- stream
参数类型:bool
作用:相应的内容,是否以分流式分批下载
requests.request()的方法介绍就这么多,具体应用方式,代码操练
其他的方法都是在内部调用了request方法,使用方式不需要加入method参数,其他都一样的