python Requests简介

Request简介

Request是一个简答优雅的python HTTP库,相较于python标准库中的urllib和urllib2的库,Requests更加的便于理解使用,Request的优点可以参照这篇博客

Request的安装

python Requests的安装可以通过pip包管理器来进行

$ pip install requests

当然也可以进行源码编译,从github上克隆或者下载压缩包都行

$ git clone git://github.com/kennethreitz/requests.git
或者
$ curl -OL https://github.com/kennethreitz/requests/tarball/master
又或者
$ curl -OL https://github.com/kennethreitz/requests/zipball/master

解压之后运行

$ python setup.py install

Requsets基本使用

一、生成一个网络请求

使用Requests之前,先导入该模块

import requests

先来一个最简单的例子,像服务器发送一个GET请求

 r = requests.get('http://www.baidui.com')

现在你拥有了一个名叫rRespone对象,通过这对象,你可以获取网络应答的所有信息,例如通过r的text属性就能获取到网页内容。
requests_text
Request一个优秀的特性是能够让你显示的知道你在发送什么样的请求,上边我们在发送一个GET请求,我们可以像下边的例子一样很清楚的发送POST,EDLETE, PUT等请求

r = requests.post("http://example.com", data={"key": "value"})
r = requests.put("http://example.com")

在请求代码上你都能很清楚的知道自己在做什么样的网络请求。是不是很人性。

二、用URLs传递参数

有些时候你需要在URLs中传递键/值对给服务器端,在urllib或urllib2中你需要将参数使用urllib.encode进行转码后附加到原URL上,而在Requests中,你可以直接将参数以字典形式传递到函数中,方便快捷

python Requests简介_第1张图片

三、获取Response对象中的内容

Requests会将获取到的网络应答自动解码,大多数的unicode编码能被正确的解码

>>> r = requests.get('http://www.baidu.com')
>>> r.encoding
'utf-8'

当你需要特殊编码的时候你可以设置r.encoding的值来满足特定需求。而且Requests还会自动帮你解码gzip
等压缩文件。Requests还可以帮你解码json文件,请看下边例子

python Requests简介_第2张图片

四、定制HTTP Headers

HTTP Headers是HTTP请求和相应的核心,它承载了关于客户端浏览器,请求页面,服务器等相关的信息。在网络蜘蛛访问一些网站的时候需要提供这些信息来伪装成浏览器,Requests能够方便明了的帮你完成这项任务,你所有的Headers都可以以字典形式作为参数传递给请求函数。

url = 'http://www.example.com'
headers = {'user-agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36'}
r = requests.get(url,headers=headers)

五、复杂的POST请求

通常情况下,如果你只是想要传递简单的form表单数据给服务器的话,直接传递一个字典给requests.post 方法即可,requests.post会自动帮你把数据转换成标准格式传递给服务器。
python Requests简介_第3张图片

你可能感兴趣的:(python)