requests 实现了 HTTP 协议中绝大部分功能,它提供的功能包括 Keep-Alive、连接池、Cookie持久化、内容自动解压、HTTP代理、SSL认证等很多特性,下面这篇文章主要给大家介绍了python爬虫入门中关于优雅的HTTP库requests的相关资料,需要的朋友可以参考下。
前言
urllib、urllib2、urllib3、httplib、httplib2 都是和 HTTP 相关的 Python 模块,看名字就觉得很反人类,更糟糕的是这些模块在 Python2 与 Python3 中有很大的差异,如果业务代码要同时兼容 2 和 3,写起来会让人崩溃。
好在,还有一个非常惊艳的 HTTP 库叫 requests,它是 GitHUb 关注数最多的 Python 项目之一,requests 的作者是 Kenneth Reitz 大神。
requests 实现了 HTTP 协议中绝大部分功能,它提供的功能包括 Keep-Alive、连接池、Cookie持久化、内容自动解压、HTTP代理、SSL认证、连接超时、Session等很多特性,最重要的是它同时兼容 python2 和 python3。requests 的安装可以直接使用 pip 方法:pip install requests
发送请求
|
`>>>` `import` `requests`
`# GET 请求`
`>>> response` `=` `requests.get(<a rel``=``"external nofollow"` `href``=``"[https://foofish.net/](https://foofish.net/)"``>https:``/``/``foofish.net<``/``a>)`
|
响应内容
请求返回的值是一个Response 对象,Response 对象是对 HTTP 协议中服务端返回给浏览器的响应数据的封装,响应的中的主要元素包括:状态码、原因短语、响应首部、响应体等等,这些属性都封装在Response 对象中。
|
`# 状态码`
`>>> response.status_code`
`200`
`# 原因短语`
`>>> response.reason`
`'OK'`
`# 响应首部`
`>>>` `for` `name,value` `in` `response.headers.items():`
`...` `print``(``"%s:%s"` `%` `(name, value))`
`...`
`Content``-``Encoding:gzip`
`Server:nginx``/``1.10``.``2`
`Date:Thu,` `06` `Apr` `2017` `16``:``28``:``01` `GMT`
`# 响应内容`
`>>> response.content`
`'