python——request
文章目录
一、安装
安装:pip install requests
二、请求方式get和post
在Web开发中,POST和GET是两种常见的HTTP请求方法,它们在发送数据和请求资源时扮演着关键角色。虽然它们的基本目的相同,即向服务器请求数据,但在使用方式、安全性、数据大小和速度方面存在显著差异
1、get和post不同
1.数据传输方式和位置
GET请求 通过URL传输数据,数据附加在URL的末尾,可见且有长度限制。
POST请求 将数据放置在HTTP请求的正文中,对数据大小没有限制,且用户看不到传输的数据。
2.安全性和私密性
GET请求由于数据直接暴露在URL中,安全性相对较低,不适合传输敏感信息。
POST请求在传输敏感数据时更安全,因为数据不会显示在URL中。
3.数据大小限制
GET请求受URL长度的限制,适合小量数据的传输。
POST请求可以传输大量数据,适用于表单提交等场景。
4.缓存和历史记录
GET请求可以被缓存,也会保存在浏览器历史记录中。
POST请求不会被缓存,且不会留下历史记录。
5.使用场景和效率
GET请求通常用于请求数据和执行查询,速度较快,适用于数据量小且安全要求不高的场景。
POST请求常用于更新服务器上的数据,如用户注册和文件上传,适用于需要高安全性和处理大量数据的场景。
二、GET请求
1、带参数的get请求
1、格式
response = requests.get(url, headers=headers)
代码如下(示例):
import requests
# 设置请求的url
url = "https://www.baidu.com/s?wd=python"
# 设置请求头,请求头是一个字典
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
}
# 用get方式发送请求,带入url和头部信息
response = requests.get(url, headers=headers)
# 查看最终请求的url(返回的是经过所有重定向后的最终url)
print(response.url)
# 查看返回的请求网站的编码
print(response.encoding)
# 设置编码为"UTF-8"接收文档
response.encoding = 'UTF-8'
# 打印文档返回的文本
print(response.text)
2、格式
response = requests.get(url, headers=headers, params=params)
import requests
# s最后有没有问号结果都一样
url = 'https://www.baidu.com/s?'
# 请求头是一个字典
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
}
# 请求参数是一个字典
params = {
'wd': 'python'
}
# 带上请求参数发起请求,获取响应
response = requests.get(url, headers=headers, params=params)
data = response.content.decode()
print(response.url)
三、post请求
1、格式
response = requests.post(“http://www.baidu.com/”, data = data, headers=headers)
import requests
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
url = 'https://www.baidu.com/s?'
data = {
'wd': 'python'
}
res = requests.post(url, headers=headers, data=data)
print(res)
print(res.status_code)
四、结果处理
# 1.导入requests库
#处理返回结果
import json
import requests
# 2.明确请求地址
url = 'https://www.baidu.com/s?'
# 3.明确请求参数
# 是一个字典类型数据
data = {
'wd': 'python'
}
# 4.发送请求
response = requests.get(url=url, params=data)
# print(response.json())
# 将python对象转换为json字符串(格式化放回数据)指定编码
result = json.dumps(response.json(), indent=2, ensure_ascii=False)
# print(type(result)) # 字符串类型
五、操作步骤
1.导入requests库
2.明确请求地址
3.明确请求参数
data = {key:value} 字典格式
4.发送请求获取返回数据
作者:罗网_net