Requests库的使用
Requests库是python对于HTTP网页进行操作的最简单易用的库。
Python的Requests库主要有一下集中使用方法:
| requests.request() | 构造一个请求,是以下各种方法的基础 |
| requests.get() | 获取HTML网页的主要方法,对应于HTTP的GET |
| requests.head() | 获取HTML网页头信息的主要方法,对应于HTTP的HEAD |
| requests.post() | 向HTML网页提交POST请求的方法,对应于HTTP的POST |
| requests.put() | x向HTML网页提交PUT请求的方法,对应于HTTP的PUT |
| requests.patch() | x向HTMl网页提交局部修改请求,对应于HTTP的PATCH |
| requests.delete() | x向HTML页面提交删除请求,对应于HTTP的DELETE |
requests.get()方法的使用:

request.get(url,params = None,**kwargs)
url : 想要获取的页面的url链接,(例如:https://www.baidu.com)必须加https:// ,否则会报错。
params : url中的额外参数,字典或字节流格式,可选,默认为None。
**kwargs : 12个控制访问的参数

Response对象包含服务器返回的信息,也包含请求的Request信息。
Response对象的属性:
| r.status_code |
HTTP请求返回的状态,200表示连接成功,404表示连接失败。 |
| r.text | HTTP响应内容的字符串形式,即,url对应的页面内容。 |
| r.encode | c从HTTP header中猜测的响应内容的编码方式 |
| r.apparent_encoding | c从内容中分析出的响应内容的编码方式 |
| r.content | HTTP响应内容的二进制形式 |
代码示例:

r.encoding和r.apparent_encoding的区别:
r.encoding:如果Header中不存在charest,则认为编码是ISO-8859-1,r.text根据r.encoding的编码方式显示内容
r.apparent_encoding:根据网页内容分析出的编码方式,可以看作是r.encoidng的备选
r.raise_for_status()函数会在其内部判断r.status_code是否等于200,如果不等于会直接报错,一般用于try...except进行异常处理。
爬取网页的通用代码框架:
def getHTMLText(url): try: r = requests.get(url) r.raise_for_status() #如果状态不是200,会引发HTTPError异常 r.encoding = r.apparent_encoding return r.text except: return '爬取失败‘’
Requests库的异常:
| requests.ConnectionError | 网络连接错误异常,如:DNS查询失败,拒绝连接等 |
| requests.HTTPError | HTTP错误异常 |
| requests.URLRequired | URL缺失异常 |
| requests.TooManyRedirects | 超过最大重定向次数,产生重定向异常 |
| requests.ConntecionTimeout | 连接远程服务器超时异常 |
| requests.Timeout | 请求URL超时,产生超时异常 |

浙公网安备 33010602011771号