`requests` 是 Python 中一个非常流行的 HTTP 库,用于发送各种 HTTP 请求。下面是一个使用 `requests` 库发送简单 GET 请求和 POST 请求的示例:
首先,确保你已经安装了 `requests` 库。如果还没有安装,可以使用 pip 进行安装:
```bash
pip install requests
```
### GET 请求示例:
```python
import requests
# 目标 URL
url = 'http://httpbin.org/get'
# 发送 GET 请求
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
# 获取响应内容
print(response.text)
else:
print('Failed to retrieve content:', response.status_code)
```
### POST 请求示例:
```python
import requests
# 目标 URL
url = 'http://httpbin.org/post'
# 要发送的数据
data = {
'key1': 'value1',
'key2': 'value2'
}
# 发送 POST 请求
response = requests.post(url, data=data)
# 检查请求是否成功
if response.status_code == 200:
# 获取响应内容
print(response.text)
else:
print('Failed to post data:', response.status_code)
```
这两个示例演示了如何使用 `requests` 库发送基本的 GET 和 POST 请求。`requests` 库还支持其他类型的 HTTP 请求,如 PUT、DELETE、HEAD 等,并且可以处理更复杂的请求,如带有自定义头部、cookie、超时设置等。
如果你需要发送 JSON 数据,可以使用 `json` 参数而不是 `data` 参数:
```python
# 发送 POST 请求,包含 JSON 数据
response = requests.post(url, json=data)
```
这将自动将字典编码为 JSON 格式,并设置适当的 `Content-Type` 头部。
测试代码
import json
import zlib
import requests as re
import json
import lzma
# 获取数据
Qhurl = "https://push2.eastmoney.com/api/qt/stock/details/get"
Qhparams = {
"fields1":"f1,f2,f3,f4",
"fields2":"f51,f52,f53,f54,f55",
"fltt":"2",
"pos":"-100000",
"secid":"1.603267",
"ut":"fa5fd1943c7b386f172d6893dbfba10b",
"wbp2u":"|0|0|0|web",
}
Qhreq = re.get(url=Qhurl, params=Qhparams)
# Qhreq.encoding = "utf-8"
Qhreqjson = json.dumps(Qhreq.text)
print(type(Qhreqjson))
# # 例如,将其写入文件
with open('原始数据compressed_data.bin', 'wb') as f:
f.write(Qhreqjson.encode('utf-8'))
print("原始数据长度:",len(Qhreqjson))
# compressed_data = zlib.compress(Qhreqjson.encode('utf-8'))
compressed_data = lzma.compress(Qhreqjson.encode('utf-8'))
# print(compressed_data)
print("压缩后数据长度:",len(compressed_data))
with open('压缩后数据compressed_data.txt', 'wb') as f:
f.write(compressed_data)
# decompressed_data = zlib.decompress(compressed_data).decode('utf-8')
decompressed_data = lzma.decompress(compressed_data).decode('utf-8')
# print(decompressed_data)
print("解压后数据长度:",len(compressed_data))
Qhreqjson = json.loads(json.loads(decompressed_data))
# print(Qhreqjson)
print("解压后数据长度 json:",len(Qhreqjson))
print("解压后数据长度 行数:",len(Qhreqjson["data"]["details"]))
运行结果:
压缩前后数据大小对比