request.get(url, params=None,**kwargs)
url:拟获取页面的url链接
params:url中的 额外参数,字典或字节流格式,可选
**kwargs:12个控制访问的参数
r.status_code
:HTTP请求的返回状态,200表示连接成功,404表示连接失败。
r.text
:HTTP响应内容的 字符串形式,即,url对应的页面内容。
r.encodeing
:从HTTP header中猜测的响应内容编码方式。
r.apparent_encoding
:从内容中分析出的响应内容编码方式(备选编码方式)。
r.content
:HTTP响应内容的二进制形式。
r.encoding
:如果header中不存在charest,则认为编码为ISO-8859-1。
r.apparent_encoding
:根据网页内容分析出的编码方式。
r.raise_for_status()如果状态不是200,引发HTTPError异常
request库的异常
request.ConnectionError:网络连接异常
requests.HTTPError:HTTP错误异常
requests.URLRequired:URL缺失异常
requests.TooManyRedirects:超过最大重定向次数 ,产生重定向异常
requests.ConnectTimeout:连接远程服务器超时异常
requests.Timeout:请求URL超时,产生超时异常
import requests
def getHTMLText(url):
try:
r = requests.get(url, timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常"
if __name__ == "__main__":
url = "http://www.baidu.com"
print(getHTMLText(url))
http协议对资源的操作
get 请求获取url位置的资源。
head 请求货物URL位置资源的相应消息报告,即获得该资源的头部信息。
post 请求向URL位置的资源后附加新的数据。
put 请求向URL位置存储一个资源,覆盖原URL位置的资源。
patch请求局部更新 URL位置的资源,即改变该处资源的部分内容。
delete请求删除url位置存储的资源。
理解patch和 put方法
假设URL位置有一组数据 UserInfo,包括UserID、UserName等20个字段。
需求:用户修改了 UserName,其它不变。
采用patch,仅向URL提交UserName的局部更新请求。
采用PUT,必须将所有20个字段一并提交到URL ,未提交字段被删除。
patch的最大好处:节省网络带宽
data:字典、字节序列或文件对象,作为Request的内容
json:json格式的数据,作为Request的内容
cookies:字典或 CookieJar,Request中的 cookie
auth:元组,支持HTTP认证功能
files:字典类型 ,传输文件
proxies:字典类型,设定访问代理服务器,可以增加登录认证。
pxs = { 'http' : 'http://user:pass@10.10.10.1:1234'
'https': 'https://10.10.10.1:4321'}
r = requests.request('GET','http://www.baidu.com', proxies=pxs)
sllow_redirects:True/False,重定向开关
stream:True/False,获取内容立即下载开关
verify:True/False,默认为True,认证SSL证书开关
cert:本地SSL证书路径
params data json headers