**
- 1、Response对象的属性
**
属性
说明
r.status_code
HTTp请求的返回状态,200表示连接成功,404表示失败
r.text
HTTp响应内容的字符串形式,即url对应的页面内容
r.encoding
从HTTP header中猜测的响应内容编码方式
r.apparent_encoding
从内容中分析出的响应内容编码方式(备选编码方式)
r. content
HTTP 响应内容的二进制形式
response的编码意义
r.encoding
从HTTP header中猜测的响应内容编码方式
r.apparent_encoding
从内容中分析出的响应内容编码方式(备选编码方式)
r.encoding:如果header中不存在charset,则认为编码为IS0-8859-1 r.text根据r.encoding显示网页内容
r.apparent_encoding:根据网页内容分析出的编码方式。可以看作是r.encoding的备选
**
2、requsets的异常
**
异常
说明
requsets.ConnectionError
接错误异常,如DNs查询失败、拒绝连接等
requsets.HTTPError
HTTP错误异常
requsets.URLRequired
URL缺失异常
requsets.TooManyRedirects
超过最大重定向次数,产生重定向异常
requsets.ConnecTimeout
连接远程服务器超时异常
requsets.Timeout
请求URL超时,产生超时异常
3、通用代码框架
import requests
#定义通用爬虫代码框架
def getHTMLText(url):
try:
r=requests.get(url,timeout=30)
r.raise_for_status()#如果状态不是200,引发HTTPError异常
r.encoding=r.apparent_encoding
return r.text
except:
return"产生异常"
#main函数
if _name_=='_main_':
url=""
print(getHTMLText(url))
4、HTTP协议
HTTP,( Hypertext Transfer Protocol, )超文本传输协议
HTTP是一个基于“请求与响应”模式的、无状态的应用层协议
HTTP 协议采用 URL 作为定位网络资源的标识,URL 格式如下
http //host[:port][path]
host:合法的lnternet主机域名或IP地址
port:端口号,缺省端口为80
path:请求资源的路径
(1)HTTP协议对资源的操作
方法 说明
方法
说明
GET
请求获取URL位置的资源
HEAD
请求获取URL位置资源的响应消息报告,即获得该资源的头部信息
POST
请求向URL位置的资源后附加新的数据
PUT
请求向URL位置存储一个资源,覆盖原URL位置的资源
PATCH
请求局部更新URL位置的资源,即改变该处资源的部分内容
DELETE
请求删除URL位置存储的资源
(2)PATCH和PUT的区别
假设URL位置有一组数据UserInfo,包括UserID、UserName等20个字段
需求:用户修改了UserName,其他不变
采用PATCH,仅向URL提交UserName的局部更新请求
采用PUT,必须将所有20个字段一并提交到URL,未提交字段被删除
PATCH的最主要好处:节省网络带宽
(3)HTTP协议与Requests库功能一致相关方法对应
HTTP协议方法
Requests库方法
GET
requests.get()
HEAD
requests.head()
POST
requests.post()
PUT
requests.put()
PATCH
requests.patch()
DELETE
requests.delete()