一.requests库安装
window或Linux均可使用命令 pip install requests
二、requests主要方法
方法 | 说明 |
---|---|
requests.request() | 构造一个请求,支持一下各方法的基础方法 |
requests.get() | 获取html网页的主要方法,对应于HTTP的get |
requests.head() | 获取html网页头信息的方法,对应于HTTP的head |
requests.post() | 向html网页提交post请求的方法,对应于HTTP的post |
requests.put() | 向html网页提交put请求的方法,对应于HTTP的put |
requests.patch() | 向html网页提交局部修改请求的方法,对应于HTTP的patch |
requests.delete() | 向html网页提交删除请求的方法,对应于HTTP的delete |
三、requests方法解析
requests.request(methon,url,**kwargs)
methom:请求方式,对应get,post等六种
url:拟获取界面的url链接
**kwargs:控制访问的参数,共13个,可选
params:字典或字节序列,作为参数增加到url中
kv = {'key1':'value1','key2':'value2'}
r=requests.request('GET','http://python123.io/ws',params=kv)
r.url
#'https://python123.io/ws?key1=value1&key2=value2'
data:字典、字节或文件对象,作为Request的内容
json:json数据格式,作为Request的内容
headers:字典,HTTP定制头
cookies:字典获CookieJar,Request中的Cookie
auth:元组,支持HTTP认证功能
files:字典类型,传送文件
timeout:设置超时时间,单位为秒
proxies:字典类型,设定访问代理服务器,可以增加登录认证
allow_ redirects : True/False ,默认为True ,重定向开关
stream:True/False ,默认为True ,获取内容立即^下载开关
verify:True/False ,默认为True ,认证SSL证书开关
cert:本地SSL证书路径
request.get(url,params=None,**kwargs)
url:拟获取界面的url链接
params:字典或字节序列,作为参数增加到url中(可选)
**kwargs:控制访问的参数,共13个,可选
其他格式同get
四、Response对象
r = requests.request('GET','http://www.baidu.com')
type(r)
#<class 'requests.models.Response'>
属性 | 说明 |
---|---|
r . status_ code | HTTP请求的返回状态, 200表示连接成功, 404表示失败 |
r. text | HTTP响应内容的字符串形式,即, ur1对应的页面内容 |
r. encoding | 从HTTP header中猜测的响应内容编码方式 |
r . apparent_ encoding | 从内容中分析出的响应内容编码方式(备选编码方式) |
r. content | HTTP响应内容的二进制形式 |
五、异常
异常 | 说明 |
---|---|
requests . ConnectionError | 网络连接错误异常,如DNS查询失败、拒绝连接等 |
requests . HTTPError | HTTP错误异常requests. URLRequired URL缺失异常 |
requests . TooManyRedirects | 超过最大重定向次数,产生重定向异常 |
requests . ConnectTimeout | 连接远程服务器超时异常 |
requests . Timeout | 请求URL超时,产生超时异常 |
六、通用代码框架
import requests
def getHTMLText(url):
try:
r = requests.get(url)
r.raise_for_status()#如果状态不是200,引发HTTPError异常
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常"
url = 'http://www.baidu.com'
print(getHTMLText(url))