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的最主要好处:节省网络带宽
**kwargs: 控制访问的参数
files : 字典类型,传输文件
timeout : 设定超时时间,秒为单位
proxies : 字典类型,设定访问代理服务器,可以增加登录认证
allow_redirects: True/False,默认为True,重定向开关
stream : True/False,默认为True,获取内容立即下载开关
verify : True/False,默认为True,认证SSL证书开关
cert : 本地SSL证书路径
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)
response的异常:
r.raise_for_status():如果不是200,产生异常requests.HTTPError
r = requests.get(url)
r.raise_for_status()在方法内部判断r.status_code是否等于200,不需要增加额外的if语句,该语句便于利用try‐except进行异常处理
爬取网页通用代码框架:
# coding:utf-8 import requests try: r = requests.get(url="http://www.baidu.com", timeout=30) r.raise_for_status() # 若返回的状态码不是200,将产生一次异常 r.encoding = r.apparent_encoding print(r.text) # 教程用return,此处用return报错 except: print("Error") # 教程用return,此处用return报错