当我们需要向网络服务端发送请求或获取数据时,可以使用 Python 中的 requests 库。下面是关于 requests 基本使用及各种请求方式参数的示例攻略。
安装 requests 库
要使用 requests 库,首先需要在命令行中安装:
pip install requests
基本使用
在代码中导入 requests 库:
import requests
然后可以使用 requests.get()
来获取页面:
r = requests.get('https://www.google.com/')
print(r.text)
返回的 r.text
就是获取到的页面内容。如果需要传递一些参数(比如 GET 请求时的查询参数),可以在 URL 中传递或使用 params 参数:
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get('https://www.google.com/', params=payload)
请求方式
requests 支持下列 HTTP 请求方式:
- GET
- POST
- PUT
- DELETE
- HEAD
- PATCH
- OPTIONS
下面依次介绍每个请求方式以及这些方式所对应的参数和示例。
GET 请求
GET 方法请求指定的页面信息,并返回响应正文。
例如:
import requests
r = requests.get('http://httpbin.org/get')
print(r.json())
上述代码中,我们使用 GET 方法向 httpbin.org 发送了一个 GET 请求,获取到了响应数据,并通过 json() 方法将响应内容转为 JSON 格式输出。
POST 请求
POST 方法提交指定的数据到 web 应用程序的指定页面。
例如:
import requests
payload = {'username': 'admin', 'password': 'admin'}
r = requests.post('http://httpbin.org/post', data=payload)
print(r.json())
上述代码中,我们向 httpbin.org 发送一个 POST 请求,并将用户名和密码分别作为 key 和 value 放入了请求报文中。同样,我们将响应数据转为 JSON 格式输出。
参数
除了 URL 和表单数据之外,requests 还支持以下参数:
headers
headers 是一个字典,可以自定义 HTTP 请求头。例如:
import requests
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
r = requests.get('http://httpbin.org/headers', headers=headers)
print(r.json())
上述代码中,我们自定义了 headers 中的 User-Agent,也就是模拟一个 Chrome 浏览器。
cookies
cookies 是一个字典或 CookieJar,用于传输 cookie 数据。例如:
import requests
cookies = dict(cookies_are='working')
r = requests.get('http://httpbin.org/cookies', cookies=cookies)
print(r.json())
timeout
timeout 参数是请求超时时间,单位秒。例如:
import requests
r = requests.get('http://httpbin.org/get', timeout=1)
上述代码中,我们设置了 1 秒超时时间,如果 1 秒内没有响应,就会抛出 requests.exceptions.Timeout
异常。
allow_redirects
allow_redirects 用于重定向,该参数默认为 True,即允许重定向。如果设置为 False,则不会自动重定向。例如:
import requests
r = requests.get('http://httpbin.org/get', allow_redirects=False)
上述代码中,我们禁止了重定向,因此如果服务器返回重定向响应,就会得到 3xx 错误码。
总结
在使用 requests 库时,我们首先需要安装库,然后可以通过 requests.get()
发送 GET 请求,或通过 requests.post()
发送 POST 请求。requests 还支持自定义请求头、传输 cookie 数据、设置超时时间、禁止重定向等等,使用这些参数可以更灵活地操作请求和获取响应。以上是 requests 基本使用及各种请求方式参数的示例攻略,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:request基本使用及各种请求方式参数的示例 - Python技术站