requests模块

https://github.com/kennethreitz/requests

http://docs.python-requests.org/en/master/

安装requests

通过pip安装

pip3 install requests

或者下载源码安装

git clone https://github.com/kennethreitz/requests.git
cd requests
python setup.py install

发送请求与传递参数

>>> import requests
>>> r = requests.get(url='http://www.baidu.com')
>>> print(r.status_code) # 返回状态吗
200
>>> r = requests.get(url='http://dict.baidu.com/s',params={'wd':'python'})
>>> print(r.url)
http://dict.baidu.com/s?wd=python
>>> print(r.text) # 打印解码后返回的数据

其他方法

很简单吧!不但GET方法简单,其他方法都是统一的接口样式哦!

requests.get('127.0.0.1') #GET请求
requests.post(“http://xxx.org/post”) #POST请求
requests.put(“http://xxx.org/put”) #PUT请求
requests.delete(“http://xxx.org/delete”) #DELETE请求
requests.head(“http://xxx.org/get”) #HEAD请求
requests.options(“http://xxx.org/get”) #OPTIONS请求

上面这些HTTP方法,对于WEB一般只支持GET和POST,有一些还支持HEAD方法

POST发送JSON数据

import requests
import json

r = requests.post('https://api.github.com/some/endpoint', data=json.dumps({'some': 'data'}))
print(r.json())

定制header

import requests
import json

data = {'some': 'data'}
headers = {'content-type': 'application/json',
           'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0'}

r = requests.post('https://api.github.com/some/endpoint', data=data, headers=headers)
print(r.text)

response对象

使用requests方法后,会返回一个response对象,其存储了服务器响应的内容,如r.text,r.status_code

获取文本方式的响应实例:当你访问r.text的时候,会使用期响应的文本编码进行解码,并且你可以修改其编码让r.text使用自定义的编码进行解码.