📜  Requests-处理请求(1)

📅  最后修改于: 2023-12-03 14:47:04.211000             🧑  作者: Mango

Requests-处理请求

请求是Web开发中非常重要的一个环节,Requests 是一个Python第三方库,用于发送HTTP请求。它比Python内置的urllib库更加简洁易用,支持HTTP/HTTPS请求,同时支持HTTP协议中的各种请求方式(GET, POST, PUT, DELETE等)。

安装Requests

安装Requests只需要简单的一条命令:

pip install requests
使用Requests
发送GET请求

我们可以发送一个简单的GET请求,例如:

import requests

r = requests.get('https://www.baidu.com/')
print(r.text)

上面的代码中,我们使用requests.get()方法发送了一个GET请求,得到了响应数据。通过r.text可以获取到响应内容,此处获取到了百度返回的HTML内容。

发送POST请求

我们也可以发送POST请求,例如:

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'}
data = {'username': 'admin', 'password': '123456'}
r = requests.post('http://www.example.com/login', headers=headers, data=data)
print(r.text)

上面的代码中,我们将POST请求发送到 http://www.example.com/login ,同时传递了headers和data参数。其中headers包含了User-Agent字段,这是为了模拟浏览器发送请求,data中包含了用户名和密码,用于POST表单数据。

其他请求方式

Requests库支持HTTP协议中的多种请求方式,包括GET、POST、HEAD、PUT、DELETE、OPTIONS、PATCH等。例如:

import requests

r = requests.put('https://www.example.com/put', data={'key': 'value'})
r = requests.delete('https://www.example.com/delete')
r = requests.head('https://www.example.com/get')
r = requests.options('https://www.example.com/get')
传递参数

有时我们需要在URL中传递一些参数,例如:

import requests

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get('https://www.example.com/get', params=payload)

上面的代码中,我们将参数作为字典传递给params参数,Requests会自动将参数组装到URL中。

请求头

我们可以通过headers参数来修改请求头:

import requests

headers = {'user-agent': 'my-app/0.0.1'}
r = requests.get('https://www.example.com/get', headers=headers)

上面的代码中,我们将自定义的User-Agent请求头设置为my-app/0.0.1,然后发送一个GET请求。

Cookie

如果需要在请求中传递Cookie,我们可以使用cookies参数:

import requests

cookies = dict(cookies_are='working')
r = requests.get('https://httpbin.org/cookies', cookies=cookies)

上面的代码中,我们将一个Cookie设置为工作,然后将其传递给cookies参数。

文件上传

Requests库也支持上传文件,例如:

import requests

url = 'https://httpbin.org/post'
files = {'file': open('file.txt', 'rb')}
r = requests.post(url, files=files)

上面的代码中,我们将名为file.txt的文件上传到指定的URL中。

总结

Requests库是一个非常强大的HTTP库,相较于Python内置的urllib库,更加方便易用。通过Requests库,我们可以轻松地发送不同类型的HTTP请求,获取响应结果。这些功能对于Web开发来说非常重要。