您的位置:首页 > 编程语言 > Python开发

Python的requests软件包详解

2017-06-04 22:24 302 查看
requests是一款Python的第三方HTTP类库,便于进行HTTP访问。

1. requests的特性

能够发送HTTP 1.1请求
无需手工为GET方法设置URL的请求参数,无需手工为POST方法组编码表单形式
借助于urllib3实现HTTP请求的连接会话缓存
支持Python 2.6, 2.7, 3.3-3.7

2. requests的安装

pip install requests

3. requests的接口

1) Main interfaces

requests.request()
requests.head()
requests.get('url', params={'key1':'value1', 'key2':'value2'},headers={'user-agent': '...'},
cookies={'name1':'value2'})
requests.post('url', data={'key':'value'})
requests.post('url', json={'key':'value'})
requests.post('url', files={'uploaded_file': open('report.xls', 'rb')})
requests.post('url', files={'uploaded_file': ('report.xls', open('report.xls', 'rb'), 'application/excel', {'Expires': '0'})})

requests.post('url', files={'uploaded_file': ('temp.txt', 'one line\ntwo lines\n')})
requests.put('url', data={'key':'value'})
requests.patch()
requests.delete('url')

2) requests.Session类
import requests
requests.Session()


3) requests.Request类
import requests
requests.Request('GET', 'http://httpbin.org/get')


4) requests.PreparedRequest类
import requests
req = requests.Request('GET', 'http://httpbin.org/get')
preq = req.prepare()


5) requests.Response类

import requests
r = requests.get('https://api.github.com/events')
r.headers['content-type'] #'application/json;charset=utf8'
r.url
r.status_code #200==requests.codes.ok
r.encoding #'utf-8' by default
r.raw #raw content
r.text #text content
r.content #binary content
r.json()#json content, recommended
r.cookies['a_key']

注意:调用json()方法,如果返回结果不是有效的JSON数据,则抛出ValueError异常。

6) requests.adapters.BaseAdapter类

7) requests.adapters.HTTPAdapter类

requests提供的使用urllib3的HTTP Adapter

参考链接:

官网,http://python-requests.org/

文档,http://docs.python-requests.org/en/master/

代码,https://github.com/requests/requests/

Release notes,http://docs.python-requests.org/en/master/community/updates/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python requests HTTP urllib3