requests教程?
Requests教程
Requests是一个Python HTTP客户端库,它允许以简单而人性化的方式发送HTTP/1.1请求。本文将从多个角度介绍Requests库的用法。
1. 安装
在Python 3.X环境中,可以使用pip来安装requests库,如下:
>>> pip install requests
如果提示权限不足,可以在命令前加上sudo,即:
>>> sudo pip install requests
2. 最简单的请求
使用Requests发送HTTP请求非常简单,只需要调用requests库中的get()或post()等方法即可,示例如下:
>>> import requests
>>> r = requests.get('https://www.baidu.com/')
>>> print(r.text)
这里我们先导入requests库,然后使用其中的get()方法发送一个GET请求到百度首页,最后输出了响应的HTML源码。
3. 请求参数
在调用Requests的get()方法时,常常需要传入一些请求参数,如查询字符串和请求头等。在Requests中,可以通过params和headers参数来设置,示例如下:
>>> import requests
>>> headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'}
>>> params = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.get('https://httpbin.org/get', headers=headers, params=params)
>>> print(r.url)
>>> print(r.text)
这里设置了headers和params两个参数,分别代表请求头和查询字符串。Requests自动将这些参数转化为GET请求中的参数,最后打印出了响应的URL和内容。
4. POST请求
在Requests中,可以使用post()方法来发送POST请求,示例如下:
>>> import requests
>>> data = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.post('https://httpbin.org/post', data=data)
>>> print(r.text)
这里我们首先定义了一个data对象,其中包含了POST请求的参数,然后使用post()方法将请求发送到指定URL,并输出了响应的内容。
5. Session对象
在Requests中,可以使用Session对象来保持会话状态,以便在多次请求中使用相同的参数、请求头和cookie等。示例如下:
>>> import requests
>>> s = requests.Session()
>>> s.get('https://httpbin.org/cookies/set/sessioncookie/123456789')
>>> r = s.get('https://httpbin.org/cookies')
>>> print(r.text)
这里我们先定义了一个Session对象s,然后使用get()方法发送了一个请求,设置了一个cookie。接下来再使用s对象发送第二个请求,此时Requests会自动将第一个请求中的cookie带入第二个请求中,输出响应内容时可以看到,第二个请求中也带有之前设置的cookie。
6. 异常处理
在使用Requests时,可能会出现各种异常,如网络异常、超时异常等。为了防止因为异常导致程序中断,需要加入适当的异常处理机制。示例如下:
>>> import requests
>>> from requests.exceptions import RequestException
>>> try:
... r = requests.get('https://www.baidu.com/', timeout=1)
... r.raise_for_status()
... print(r.text)
... except RequestException as e:
... print(e)
在这个例子中,我们在try块中发送了一个GET请求,设置了超时时间为1秒。然后使用raise_for_status()方法来检查响应码,如果响应码不是200,则会抛出一个HTTPError异常。最后在except块中处理异常。
总结
以上就是Requests库的用法介绍,从最简单的请求到传递参数、保持会话状态、异常处理等多个方面进行了讲解。总结一下,Requests使用简单、灵活,可以轻松完成各种HTTP请求任务,是Python中非常有价值的HTTP库。