前言
requests是python的第三方库,是一个简单易用的http库,使用起来比urllib简洁很多。
其官方文档链接为:
中文文档:
http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
英文文档:
http://www.python-requests.org/en/master/
安装
1. 直接安装
pip install requests# 如果出现因下载失败导致安装不上的情况,可以先启动 ss 再执行安装命令# 或者在终端中使用代理
pip --proxy http://代理ip:端口 install requests
2. 通过源码安装
先通过 git 克隆源码库:
git clone git://github.com/kennethreitz/requests.git
或者直接到 github 网页上下载源码压缩包
接着进入到 requests 目录中执行以下命令:
python setup.py install
使用
requests支持各种请求的发送:GET,POST,PUT,DELETE,HEAD 以及 OPTIONS
import requests
r = requests.get('https://api.github.com/events')
r = requests.post('http://httpbin.org/post', data = {'key':'value'})
r = requests.put('http://httpbin.org/put', data = {'key':'value'})
r = requests.delete('http://httpbin.org/delete')
r = requests.head('http://httpbin.org/get')
r = requests.options('http://httpbin.org/get')
传递URL参数
传递参数不需要再手动去使字典编码;
注: None 的键都不会被添加到 URL 的查询字符串里
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://httpbin.org/get", params=payload)
import requests
payload = {'key1': 'value1', 'key2': ['value2', 'value3']}
r = requests.get('http://httpbin.org/get', params=payload)
print(r.url)
结果:
http://httpbin.org/get?key1=value1&key2=value2&key2=value3
响应内容
requests响应内容的方法也很丰富。
import requests
response = requests.get('http://www.baidu.com')
print(response.status_code) # 打印状态码
print(response.url) # 打印请求url
print(response.headers) # 打印头信息
print(response.cookies) # 打印cookie信息
print(response.text) #以文本形式打印网页源码
print(response.content) #以字节流形式打印
响应内容异常处理
import requests
from requests.exceptions import ReadTimeout,HTTPError,RequestException
try:
response = requests.get('http://www.baidu.com',timeout=0.5)
print(response.status_code)
except ReadTimeout:
print('timeout')
except HTTPError:
print('httperror')
except RequestException:
print('reqerror')
ps: 官方文档十分完善,更加高级用法建议查看官方文档
荐读:
urllib的基本用法
urllib3的基本用法