python——request

文章目录

  • 一、安装
  • 二、请求方式get和post
    • 1、get和post不同
  • 二、GET请求
    • 1、带参数的get请求
  • 三、post请求
  • 四、结果处理
  • 五、操作步骤


一、安装

安装: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请求

  • 一种是直接拼凑URL,直接发送最终的URL,不需要传参逻辑
  • 另一种是使用params传参逻辑,用最正统的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.发送请求获取返回数据

你可能感兴趣的:(python,python,开发语言)