85 lines
1.7 KiB
Markdown
85 lines
1.7 KiB
Markdown
# 常见模块
|
||
|
||
## 网络请求requests
|
||
|
||
```python
|
||
# request
|
||
import requests
|
||
|
||
# 会话保持
|
||
session = requests.session()
|
||
# 设置header
|
||
session.headers.update(headers)
|
||
|
||
session.post(url, data=data)
|
||
```
|
||
|
||
===这个库是同步===
|
||
|
||
* session持久化到本地
|
||
|
||
```python
|
||
import pickle
|
||
import requests
|
||
|
||
session = requests.Session()
|
||
|
||
# 序列化成二进制文件
|
||
with open('session.pkl', 'wb') as f:
|
||
pickle.dump(session, f)
|
||
|
||
# 反序列化
|
||
with open('session.pkl', 'wb') as f:
|
||
pickle.dump(session, f)
|
||
|
||
response = session.get('https://httpbin.org/get')
|
||
print(response.json())
|
||
```
|
||
|
||
## httpx
|
||
|
||
https://www.python-httpx.org/
|
||
|
||
支持同步&异步 `API`,同时支持 `HTTP/1.1` 和 `HTTP/2`。
|
||
|
||
## 日志模块
|
||
|
||
```python
|
||
# python 已内置
|
||
import logging
|
||
# 日志模块
|
||
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
|
||
logger = logging.getLogger()
|
||
```
|
||
|
||
```python
|
||
# 兼容pm2使用流模式
|
||
|
||
import logging
|
||
import sys
|
||
|
||
# 创建一个logger
|
||
logger = logging.getLogger("test")
|
||
# 创建一个handler,将日志发送到stdout
|
||
stdout_handler = logging.StreamHandler(sys.stdout)
|
||
# 创建一个formatter,定义日志输出格式
|
||
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
|
||
# 将formatter添加到handler
|
||
stdout_handler.setFormatter(formatter)
|
||
# 将handler添加到logger
|
||
logger.addHandler(stdout_handler)
|
||
# 设置日志级别(可选)
|
||
logger.setLevel(logging.INFO)
|
||
```
|
||
|
||
## 验证码
|
||
|
||
```python
|
||
import ddddocr
|
||
ocr = ddddocr.DdddOrc
|
||
code = ocr.classification (二进制文件流)
|
||
```
|
||
|
||
## uvicorn
|
||
|
||
> 一个专门用于为ASGI应用提供服务的Web服务器实现,它非常快,支持HTTP/2,可以与FastAPI等框架配合使用。 |