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超时,产生超时异常
posted @ 2018-04-18 23:04  我不  阅读(182)  评论(0编辑  收藏  举报