python爬虫response对象及通用代码框架

**

- 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="http://www.baidu.com"
       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()

你可能感兴趣的:(python爬虫)